Режим вставки
движение
hjkl
Несмотря на то, что сказал Павел Швед - что, вероятно, более целесообразно привыкнуть к Escподключению режима вставки - вот примерный набор сопоставлений для быстрой навигации в режиме вставки:
" provide hjkl movements in Insert mode via the <Alt> modifier key
inoremap <A-h> <C-o>h
inoremap <A-j> <C-o>j
inoremap <A-k> <C-o>k
inoremap <A-l> <C-o>l
Это заставит Alt+ hв режиме вставки перейти на один символ влево, Alt+ jвниз и так далее, аналогично hjklобычному режиму.
Вы должны скопировать этот код в ваш файл vimrc, чтобы он загружался каждый раз, когда вы запускаете vim (вы можете открыть его, набрав :new $myvimrc
запуск в обычном режиме).
Любые движения в нормальном режиме
Поскольку Altклавиша-модификатор по умолчанию не связана (с чем-то важным), вы можете таким же образом перевести другие (или все) функции из обычного режима в режим вставки. Например:
переход к началу текущего слова с помощью Alt+ b:
inoremap <A-b> <C-o>b
inoremap <A-w> <C-o>w
(Другое использование Altв режиме вставки)
Стоит отметить, что использование Altключа может быть лучше, чем репликация поведения в обычном режиме: например, здесь приведены сопоставления для копирования из соседней строки части из текущего столбца до конца строки:
" Insert the rest of the line below the cursor.
" Mnemonic: Elevate characters from below line
inoremap <A-e>
\<Esc>
\jl
\y$
\hk
\p
\a
" Insert the rest of the line above the cursor.
" Mnemonic: Y depicts a funnel, through which the above line's characters pour onto the current line.
inoremap <A-y>
\<Esc>
\kl
\y$
\hj
\p
\a
(Я использовал \
продолжение строки и отступ для повышения ясности - команды интерпретируются так, как если бы они были написаны в одной строке.)
Встроенные горячие клавиши для редактирования
CTRL-H delete the character in front of the cursor (same as <Backspace>)
CTRL-W delete the word in front of the cursor
CTRL-U delete all characters in front of the cursor (influenced by the 'backspace' option)
(Нет заметных встроенных горячих клавиш для движения в режиме вставки.)
Ссылка: :help insert-index
Режим командной строки
Этот набор отображений делает верхние Alt+ hjkl движения доступными в командной строке:
" provide hjkl movements in Command-line mode via the <Alt> modifier key
cnoremap <A-h> <Left>
cnoremap <A-j> <Down>
cnoremap <A-k> <Up>
cnoremap <A-l> <Right>
Кроме того, эти сопоставления добавляют движения как в режим вставки, так и в режим командной строки за один раз:
" provide hjkl movements in Insert mode and Command-line mode via the <Alt> modifier key
noremap! <A-h> <Left>
noremap! <A-j> <Down>
noremap! <A-k> <Up>
noremap! <A-l> <Right>
Команды отображения для перевода команд обычного режима в режим командной строки выглядят немного иначе, чем команды отображения режима вставки (поскольку в режиме командной строки отсутствует режим вставки Ctrl+ O):
" Normal mode command(s) go… --v <-- here
cnoremap <expr> <A-h> &cedit. 'h' .'<C-c>'
cnoremap <expr> <A-j> &cedit. 'j' .'<C-c>'
cnoremap <expr> <A-k> &cedit. 'k' .'<C-c>'
cnoremap <expr> <A-l> &cedit. 'l' .'<C-c>'
cnoremap <expr> <A-b> &cedit. 'b' .'<C-c>'
cnoremap <expr> <A-w> &cedit. 'w' .'<C-c>'
Встроенные горячие клавиши для перемещения и редактирования
CTRL-B cursor to beginning of command-line
CTRL-E cursor to end of command-line
CTRL-F opens the command-line window (unless a different key is specified in 'cedit')
CTRL-H delete the character in front of the cursor (same as <Backspace>)
CTRL-W delete the word in front of the cursor
CTRL-U delete all characters in front of the cursor
CTRL-P recall previous command-line from history (that matches pattern in front of the cursor)
CTRL-N recall next command-line from history (that matches pattern in front of the cursor)
<Up> recall previous command-line from history (that matches pattern in front of the cursor)
<Down> recall next command-line from history (that matches pattern in front of the cursor)
<S-Up> recall previous command-line from history
<S-Down> recall next command-line from history
<PageUp> recall previous command-line from history
<PageDown> recall next command-line from history
<S-Left> cursor one word left
<C-Left> cursor one word left
<S-Right> cursor one word right
<C-Right> cursor one word right
<LeftMouse> cursor at mouse click
Ссылка: :help ex-edit-index
imap jk <Esc>
), чтобы вам не приходилось прерывать импульс и тянуться через клавиатуру, чтобы нажать клавишу.