Если вы вводите команду в Vim (я имею в виду, что вы начали с :
, и вы работаете в панели внизу экрана) есть ли способ передвинуть курсор, кроме нажатия клавиши со стрелками? В частности, можете ли вы перенести его в начало, конец, назад n символов или назад на одно слово?
Как я могу перемещаться в командной строке Vim?
Ответ 1
Тип
:h cmdline-editing
для деталей. Я перечисляю несколько интересных команд не-стрелок, которые делают что-то похожее на то, что вы хотите.
- ctrl - B: курсор в начало командной строки
- ctrl - E: курсор до конца командной строки
- ctrl - W: удалить слово перед курсором
- ctrl - U: удалить все символы между позицией курсора и началом строки
Ответ 2
Нажмите Ctrl + F в режиме командной строки (сразу после :
). Там вы получите окно командной строки, которое можно редактировать и перемещаться в виде обычного окна vim (hjkl и т.д.).
Подробнее см. :h cmdline-window
.
Ответ 3
Чтобы добавить к Maxim Kim Answer,
В Normal Mode
..
q:
→ окно cmdline для команд
q/
→ окно cmdline для поиска вперед
q?
→ окно cmdline для поиска назад
Ctrl-C
или <CR>
выведет вас из окна cmdline
Ответ 4
- ctrl + left arrow: вернуться назад
- ctrl + right arrow - переместить слово
- ctrl + b - вернуться к началу строки
- ctrl + e - перейти к концу строки
- ctrl + w - удалите одно слово перед курсором
- ctrl + u - удалить строку
- ctrl + f - если вам нужно больше использования энергии редактирования ctrl + f, и вы отредактируете свою команду в обычном режиме. Например, если вы хотите переместить 5 символов влево, используйте ctrl + f, а затем
5h
.
Ответ 5
nnoremap q; q:
, чтобы облегчить печатание. usr_20.txt и cmdline.txt содержит всю полезную информацию.
Ответ 6
На самом деле вы можете добавить свои собственные клавиши перемещения. Например, я использую следующее в моем .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, напечатанный как < c-v > c- → и < c-v > c- $ > в .vimrc(по какой-то причине < c- ^ > и < c- $ > не будет работать, по крайней мере, в моей настройке, но первые do)
Ответ 7
В Mac OS
- Shift + left arrow: отступить на слово
- Shift + right arrow: двигаться вперед на слово