10

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

one
two
three
once

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

:myruncommand o|

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

4 ответа4

3

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

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

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

2

Изначально это невозможно, но на поиск этого скрипта и этого на vim.org ушло около минуты.

1

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

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

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

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

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

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

1

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .