2010-01-16 4 views
47

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

ответ

42

Тип

:h cmdline-editing

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

  • Ctrl - В: курсор в начало командной строки
  • Ctrl - Е: курсор в конец командной строки
  • Ctrl - Вт: удалить слово перед курсором
  • ctrl - U: удалить все символы между положением курсора и началом линии
+0

Спасибо, это здорово. Я просмотрел этот справочный документ, и я не вижу способ двигаться вперед и назад по слову. Знаете ли вы, что это доступно? – Ethan

+0

В документации указано, что shift + left и shift + right используются для перемещения назад и вперед.Он также имеет пример того, как привязать ' b' к сдвигу + левому (и т. Д.) В режиме командной строки:': cnoremap b ' –

+1

Это сопоставление клавиш выглядит довольно много, как Emacs :) –

65

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

Для получения более подробной информации см. :h cmdline-window.

+8

Вау, это не что иное, как раскрытие жизни мне. – BimoZX

+14

Все те пустые годы ... – offbyone

+3

И выходы 'Ctrl-C'. – Walf

12

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

В Normal Mode ..

q: -> Окно CmdLine для команд

q/ -> Окно CmdLine для поиска вперед

q? -> CmdLine окно для поиска назад

Ctrl-C или <CR> доставит вас из командная_строка-окна

9
  • Ctrl + влево стрелка: двигаться назад слово
  • Ctrl + стрелка вправо - двигаться вперед слово
  • Ctrl + б - обратно в начало строки
  • ctrl + e - перейти к концу строки
  • Ctrl + ж - удалить одно слово перед курсором
  • Ctrl + U - удалить строки
  • Ctrl + е - если вам нужно больше РЕДАКТИРОВАНИЕ Используйте мощность Ctrl + f, и вы отредактируете свою команду в обычном режиме. Например, если вы хотите переместить 5 символов влево, используйте ctrl + f, а затем 5h.
+0

На Mac «Ctrl + стрелка влево» перемещает весь рабочий стол. Я отключил его, но «Ctrl + стрелка влево» перемещает курсор влево от строки. –

0

На самом деле вы можете добавить свои собственные клавиши перемещения. Например, я использую следующий в моей .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> 

где ^ и $ действительно является < ctrl- ^> и < ctrl- $> respectivelly, напечатано как < cv> < c- ^> и < cv> < c- $> в .vimrc (по какой-то причине < c- ^> и < c- $> не будет работать, по крайней мере, в моей обстановке, но первые делают)

0

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

+0

после этого 'q;' выполнить тот же ':' then '' – qeatzy

Смежные вопросы