Vim も現代的なエディタなので、画面分割もタブもあります。タブや画面を渡り歩く操作が覚えられない!
自分の頭のできの悪さに絶望したのだけれども、自分で覚えられるようなキーバインディングを用意してみたら、嘘のように便利に使えるようになったという話です。15年遡って過去の自分に教えてやりたい。
以下が設定です。平凡な設定だから、こういう感じで設定している人も多そう。(2021-08-18 修正)
.vim
" タブを巡回
nnoremap <Leader>tl :tabnext<CR>
nnoremap <Leader>th :tabprev<CR>
" 上下左右のウィンドウに移動
nnoremap <Leader>wk <c-w>k
nnoremap <Leader>wh <c-w>h
nnoremap <Leader>wj <c-w>j
nnoremap <Leader>wl <c-w>l
" バッファを交換
nnoremap <Leader>bh :bprev<CR>
nnoremap <Leader>bl :bprev<CR>
基本はカーソル移動のキーの前に、文脈に応じて t, w, b を前置するだけなので苦もなく覚えられるでしょう?以下がいくつかの例です。
-
<Leader>bl
: 次のバッファを表示 -
<Leader>wk
: 上のウィンドウに移動 -
<Leader>tl
: 右のタブを表示
(2021-08-18 の修正内容について)
コメントに書いたように、以前の設定を施したところ t
, b
などの移動コマンドに対するビジュアルフィードバックが遅くなりました。t
の打鍵後に neovim が次の文字の入力を待って、タブの変更かカーソル移動かを判断することが原因と思われます。
今日の修正内容は、t
や b
などの移動コマンドとの衝突を避けることが目的です。私は <Leader>
にスペースバーを割り当てています。