Навигация в командном режиме Vim - PullRequest
49 голосов
/ 03 августа 2011

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

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

Ответы [ 4 ]

71 голосов
/ 03 августа 2011

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

34 голосов
/ 03 августа 2011

Некоторые из справки 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.  
22 голосов
/ 03 августа 2011

У меня есть это в моем .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>
10 голосов
/ 03 августа 2011

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

...