挿入モード
移動
hjkl
Pavel Shvedの発言にもかかわらず、Esc挿入モードのping に慣れる方がおそらく賢明です-挿入モード内ですばやく移動するためのマッピングのサンプルセットを次に示します。
" 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が1文字左、Alt+ j下などに移動hjklします。
そのコードをvimrcファイルにコピーして、vimを起動するたびに読み込まれるようにする必要があります(:new $myvimrc
通常モードで「starting」と入力して開くことができます)。
通常モードの動き
Alt修飾キーはデフォルトでは(重要なものに)マップされていないため、同じ方法で他の(またはすべての)機能を通常モードから挿入モードにプルできます。例:+で
現在の単語の先頭に移動する:Altb
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
(わかりやすくするために、\
行の継続とインデントを使用しました。コマンドは1行で記述されているかのように解釈されます。)
編集用の組み込みホットキー
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>
)にマップすると、勢いを崩してキーボードを横切ってキーを押す必要がないので便利です。