Vim командный режим завершить слово

12

Есть ли способ получить Vim в командном режиме, чтобы завершить слова из текущего файла? Скажи, у меня есть этот файл:

one
two
three
once

и я вхожу в режим командной строки

:myruncommand o|

где |обозначает позицию курсора. Как сделать Vim завершенным oneили onceпри нажатии Tab?

Николай Колев
источник
Цитата из описания скрипта: «В режиме«: »завершение доступно только после« / ».» Не совсем то, что мне нужно.
Николай Колев

Ответы:

5

jamesc в ответ часто является самым удобным, но, когда вы знаете заранее , что вы хотите использовать автозаполнение для команды или поиска строки, или другие функции , доступные только в буфере, вот еще один способ , чтобы добраться до соответствующих буферов :

  • Введите, q :чтобы открыть буфер команд
  • Введите, aчтобы начать ввод новой команды: myruncommand o
  • Используйте Ctrl+ N/ Ctrl+ Pдля завершения ключевого слова, как в ответе jamesc

По сути, q :делает то же самое, что и : Ctrl+ F: позволяет вводить команды, как если бы вы вводили текст в буфер. Точно так же q /и / Ctrl+ Fоба позволяют вводить строки поиска в буфере.

Майкл Шепер
источник
Отличный ответ. Буфер команд - это то, что я определенно хотел бы использовать лучше.
Jamesc
@jamesc: Я рад, что это было полезно для тебя. Я не знал оCtrl+F , так что ваш ответ мне тоже помог.
Майкл Шепер
3

Хотя это правда, что это не может быть завершено изначально с помощью «Tab», есть возможность:

  • Ввод нужной команды в режиме командной строки. Для приведенного выше примера это было:

    :myruncommand o
    
  • Теперь нажмите, Ctrl-Fчтобы войти в командное окно.

  • Используйте Aперемещение до конца строки и войдите в режим вставки.
  • Используйте Ctrl-N/, Ctrl-Pчтобы открыть завершение ключевого слова и выберите нужный вариант - в этом примере оба oneи onceдолжны быть доступны, поскольку они находятся в открытом буфере.

Я добавил этот ответ, потому что мой поиск «vim complete word in command mode» привел меня сюда, и это кажется работоспособным решением, даже если он не использует клавишу «tab».

Это работает для меня в Vim 7.4

jamesc
источник
Я должен был догадаться, что есть простой способ перейти к буферу команд / поиска, когда уже вводится команда или строка поиска! Спасибо! Я добавил ответ, основанный на вашем, как я уже знал. Но, несомненно, Ctrl+Fудобнее во многих случаях. superuser.com/a/1016058/219388
Майкл Шепер
1

Завершение доступно, если вы войдете в историю командного режима. Очень удобно для изменения или повторения ранее использованных команд.

Нажмите q: в обычном режиме, чтобы войти в панель истории команд.

См. Http://vim.wikia.com/wiki/Using_command-line_history для получения дополнительной информации.

rvrsd
источник
1
В режиме командной строки, если вы вводите, Ctrl-fоткрывается история командной строки, и если вы хотите закрыть это окно, вы можете набратьCtrl-w q
SergioAraujo