Подтвердить что ты не робот

Навигация в режиме команд Vim

Я долгое время учился у Emacs Vim. Emacs позволяет мне перемещаться в мини-буфере (где я выдаю команды, такие как C-x C-s), используя те же самые сочетания клавиш навигации, что и в любом другом буфере. Например, я могу перемещаться вперед по одному символу, используя C-f, даже в мини-буфере. Я мог бы также использовать клавиши со стрелками, но они слишком далеко.

Есть ли какая-либо комбинация клавиш для навигации в режиме команды Vim (:), без использования клавиш со стрелками - эквивалентно emacs C-f, C-b? Спасибо.

4b9b3361

Ответ 1

Добавляя к ответу Грега Хьюглилла, вы можете использовать q:, чтобы открыть окно командной строки, где у вас есть возможность редактирования Vim.

Ответ 2

Некоторые из справки Vim:

CTRL-B or <Home>
        cursor to beginning of command-line
CTRL-E or <End> 
        cursor to end of command-line
CTRL-H              
<BS>        Delete the character in front of the cursor (see |:fixdel| if
        your <BS> key does not do what you want).
<Del>       Delete the character under the cursor (at end of line:
        character before the cursor).
CTRL-W      Delete the |word| before the cursor.  This depends on the
        'iskeyword' option.
CTRL-U      Remove all characters between the cursor position and
        the beginning of the line.  

Ответ 3

У меня есть это в моем .vimrc

cnoremap <C-a> <Home>
cnoremap <C-e> <End>
cnoremap <C-p> <Up>
cnoremap <C-n> <Down>
cnoremap <C-b> <Left>
cnoremap <C-f> <Right>
cnoremap <M-b> <S-Left>
cnoremap <M-f> <S-Right>

Ответ 4

С привязками клавиш по умолчанию vim не предлагает навигацию по клавишам со стрелкой без редактирования. Однако, см. :help cmdline-editing для примера того, как использовать команду :cnoremap для настройки чередующихся привязок клавиш.