Как я могу перемещаться в командной строке Vim? - PullRequest
61 голосов
/ 16 января 2010

Если вы набираете команду в Vim (я имею в виду, что вы начали с : и работаете в строке внизу экрана), есть ли способ переместить курсор, кроме нажатия клавиши со стрелками? В частности, можете ли вы переместить его в начало, конец, назад на n символов или назад на одно слово?

Ответы [ 6 ]

83 голосов
/ 16 января 2010

Нажмите Ctrl + F в режиме командной строки (сразу после :). Там вы получите окно командной строки, которое можно редактировать и перемещать как обычное окно vim (hjkl и т. Д.).

Подробнее см. :h cmdline-window.

57 голосов
/ 16 января 2010

Тип

:h cmdline-editing

для деталей. Я перечисляю несколько интересных команд без стрелок, которые делают что-то похожее на то, что вы хотите.

  • ctrl - B : курсор на начало командной строки
  • ctrl - E : курсор в конец командной строки
  • ctrl - W : удалить слово перед курсором
  • ctrl - U : удалить все символы между позицией курсора и началом строки
19 голосов
/ 16 января 2010

Чтобы добавить к ответу Максима Кима,

В Normal Mode ..

q: -> окно командной строки для команд

q/ -> окно командной строки для поиска вперед

q? -> окно командной строки для поиска в обратном направлении

Ctrl-C или <CR> выведет вас из окна командной строки

14 голосов
/ 02 марта 2013
  • ctrl + стрелка влево : вернуться на слово
  • ctrl + стрелка вправо - переместиться вперед на слово
  • ctrl + b - назад к началу строки
  • ctrl + e - перейти в конец строки
  • ctrl + w - удалить одно слово перед курсором
  • ctrl + u - удалить строку
  • ctrl + f - если вам нужно больше мощности для редактирования, используйте ctrl + f , и вы будете редактировать свою команду в обычном режиме , Например, если вы хотите переместить 5 символов влево, используйте ctrl + f , а затем 5h.
3 голосов
/ 17 июня 2016

nnoremap q; q: для облегчения набора текста. usr_20.txt и cmdline.txt содержат всю полезную информацию.

1 голос
/ 06 апреля 2013

Вы можете добавить свои собственные клавиши перемещения. Например, я использую следующее в моем .vimrc, чтобы сделать перемещение по командному режиму удобным для пользователя способом hjkl (используя клавишу ctrl):

 " moving aroung in command mode
 cnoremap <c-h> <left>
 cnoremap <c-j> <down>
 cnoremap <c-k> <up>
 cnoremap <c-l> <right>
 cnoremap ^     <home>
 cnoremap $     <end>

, где ^ и $ на самом деле и соответственно, типизированы как и в .vimrc (по какой-то причине и не будут работать, по крайней мере, в моих настройках, но первые работают)

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