VSCode の Vim 拡張機能で .vimrc を使う方法
VSCode の Vim 拡張機能(以下 VSCodeVim)では、.vimrc を(一部)サポートしています。
VSCodeVim で .vimrc を使うための設定方法を解説します。
前提
VSCode に VSCodeVim をインストール済みであることを前提としています。
まだ VSCodeVim を導入していない方は、先にインストールを済ませておいてください。
手順
(1) .vimrc ファイルを作成
適当な場所(ユーザーフォルダ直下など)に .vimrc ファイルを作成します。
ファイル名は何でも良いです。また、中身は書かなくても良いです(後で VSCode から編集できます)。
(2) settings.json に追記する
VSCode を開き、以下の操作を行ってください。
- Ctrl+Shift+P を押し、コマンドパレットを開く
- 「json」などと入力し、「設定(JSON)を開く」を選択する
- settings.json が開くので、以下を追記する
"vim.vimrc.enable": true,
"vim.vimrc.path": "c:\\Users\\(ユーザー名)\\.vimrc",
path は例です。(1)で作成した .vimrc のパスを指定してください。
(3) .vimrc を編集する
- Ctrl+Shift+P を押し、コマンドパレットを開く
- 「vimrc」などと入力し、「Vim: Edit .vimrc」を選択する
- (2)で指定したパスの .vimrc が開くので、好みに合わせて設定する
.vimrc の設定例
私が使っている設定です。
inoremap jj <Esc>
nnoremap : ;
nnoremap ; :
vnoremap : ;
vnoremap ; :
nnoremap j gj
nnoremap k gk
nnoremap gj j
nnoremap gk k
以前は settings.json に
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [
"j", "j"
],
"after": [
"<Esc>"
]
}
],
などと冗長な設定を書かなければなりませんでしたが、.vimrc を使えばリマップを簡潔に行うことができます。
ただし、現段階では
set hlsearch
nnoremap <Esc> :nohlsearch<CR><Esc>
のような設定には対応していないようです。
検索時にハイライトしたい場合は、settings.json に
"vim.hlsearch": true,
"vim.normalModeKeyBindingsNonRecursive": [
{
"before": [
"<Esc>"
],
"commands": [
{
"command": ":nohl",
"args": []
}
]
}
],
のように記述する必要があります。
まとめ
VSCodeVim は .vimrc にも(一部)対応して、かなり便利になっています。
.vimrc が使えることを知らなかったという方は、ぜひこの機会に .vimrc にキーリマップを書いて、 settings.json をスッキリさせましょう。
蛇足
Vim でキーリマップの設定をしていないという方は、
inoremap jj <Esc>
だけでも設定してみてください。めちゃくちゃ楽になると思います(jj の代わりに kj でも jk でも何でも良いです)。