少し便利なvim(for VSCode)のキーコンフィグ
はじめに
vimの操作は初学者にとって煩雑に感じることがあります。 特にワードを{}などで囲む際のysiwなどは長いっ!と感じてしまいます。
また、煩雑とは別に面倒くささも感じることがあります。 例えば、対応する括弧へのジャンプの%や行末ジャンプの$は非常に押しにくいキー配置ですよね。
実際のところ$はAで対応できますが、挿入モードにしたくない事情もあることでしょう...()
vimを使う方々のほとんどは「楽をしたい!」が根本にあると思います。
それなのに、押しずらいキーコンフィグを無理に使う理由はないですよね。なので押しずらいなぁ..めんどくさいなぁ..と思ったら変えてしまうが吉です。
(そもそも拡張のしやすさがvimの魅力ですね)
そこで、当ブログではvim初学者の私が便利と思ったキーコンフィグを紹介できればと思います。
また、私自身はVSCodeの拡張機能のVimを使用していますので基本的なキーコンフィグの記述はVSCodeのUser Settings(JSON)になります。
便利なLeaderキーについて
vimにはユーザーが自由にショートカットキーを作成できる機能があります。
Leaderキーと呼ばれるショートカットを開始するキーを設定することで簡単に作れます。
簡単に言うと、Ctrlキーのような最初に入力するキーです。
以下のようにLeaderキーを設定することが出来ます。
// スペースキーをLeaderキーとして設定
"vim.leader": "<space>",
// MをLeaderキーとして設定
"vim.leader": "M",モーション系のキーコンフィグ
Leaderキーにも触れたところで、私のキーコンフィグを紹介しようと思います。
まずはモーション系ですね。上記で触れた$や%などです。
下記に対応表を載せます。
<Leader>は先ほど設定したLeaderキーです。
| モーションコマンド | ショートカットキー |
|---|---|
| ^ : 文字列の先頭ジャンプ | <Leader> + l |
| $ : 行末ジャンプ | <Leader> + h |
| % : 対応括弧ジャンプ | <Leader> + m |
JSONで以下のように設定することが出来ます。
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [ "<Leader>", "h" ],
"after": [ "^" ],
},
{
"before": [ "<Leader>", "l" ],
"after": [ "$" ],
},
]ちなみにNonRecuriveというのは、再帰的でないコマンドのときだけ使えます。
ysiwのように再帰的な処理があるコマンドはvim.normalModeKeyBindingsの中に記述するようにしてください。
設定しておくと便利なコンフィグ
キーコンフィグとは少しそれますが、VSCodeでvimを使っているなら設定したほうがいいコンフィグがあります。
OSのクリップボードと共有
初期設定では、VSCodeでyankをしてもOS側のクリップボードには共有されません。 そこで下記のように設定することでOS側のクリップボードと共有することが出来ます。
"vim.useSystemClipboard": true,行番号の相対表示
行番号はエディターの左側に表示されるあの番号ですね。
相対表示にすることで、vim特有の数字 + j,lがやりやすくなります。
"editor.lineNumbers": "relative",
おわりに
大体こんなところです。
私自身まだvimに触れ始めたばっかりなので、今後色んな拡張をしていくと思います。
いい感じのキーコンフィグを見つけたら、追記していこうと思います。