завершение vim удаляет набранные буквы - PullRequest
4 голосов
/ 07 декабря 2010

Я пришел к поведению завершения vim, которое очень раздражает меня, и я не могу понять, как настроить vim для поведения по-другому. Может быть, это вообще невозможно.

Предположим, я редактируюфайл со следующим содержимым:

MyCompany2
MyCompanies
MyCompany3

Теперь я хочу добавить еще одну запись (скажем, MyCompanyABC), поэтому я набираю My и нажимаю Ctrl-N , так что теперь у меня есть

MyCompany2

Теперь я нажимаю backspace , затем A , поэтому я нахожусь на

MyCompanyA

Нет, я решаю попробовать завершить снова, поэтому я нажимаю Ctrl-N , и vim возвращает меня к

My

Так есть ли способ сделать так, чтобы последний шаг сохранил то, что у меня уже есть?

ОБНОВЛЕНИЕ:

Я неправильно задал последовательность завершения.Проблема, которую я описываю, появляется, если сначала нажать Ctrl-P .Затем в приведенном выше сценарии вы получите, а остальные, как указано выше.

MyCompany3

Ответы [ 2 ]

0 голосов
/ 07 декабря 2010

Вы уверены, что хотите использовать Ctrl-N напрямую, не нажимая Ctrl-X заранее?Ctrl-N также будет искать во всех открытых буферах.

Возможно, нажатие CTRL-X CTRL-N или CTRL-X CTRL-P приведет к более стабильному завершению.

0 голосов
/ 07 декабря 2010

На моей машине это не так (Ubuntu 10.10, vim 7.2.330 здесь). Если я сделаю это:

  • Откройте vim, набрав vi
  • Введите текст, который вы дали выше

    MyCompany2
    MyCompanies
    MyCompany3
    
  • Открыть новую строку ниже

  • Тип "Мой"
  • Нажмите Ctrl-N
  • Выберите MyCompany2
  • Backspace (после этого получите "MyCompany")
  • Тип A (получить "MyCompanyA")

Ctrl-N ничего не делает - как и ожидалось, строка состояния говорит: -- Keyword completition (^N^P) Pattern not found.

Возможно, у вас есть какой-нибудь плагин, который меняет поведение по умолчанию? Вы также можете попробовать vi -u NONE, чтобы проверить, есть ли в вашем .vimrc что-то, что меняет это поведение. Лучше всего, если у вас есть другая система, чтобы проверить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...