VSCode の Vim 拡張機能で .vimrc を使う方法

VSCode の Vim 拡張機能(以下 VSCodeVim)では、.vimrc を(一部)サポートしています。

VSCodeVim で .vimrc を使うための設定方法を解説します。

2020 年 2 月時点では、キーリマップのみ対応しています。また、実験的なサポートなので、バグ等がある可能性があります。詳しくは、VSCodeVim の Readme#493 をご覧ください。

前提

VSCode に VSCodeVim をインストール済みであることを前提としています。

まだ VSCodeVim を導入していない方は、先にインストールを済ませておいてください。

手順

(1) .vimrc ファイルを作成

適当な場所(ユーザーフォルダ直下など)に .vimrc ファイルを作成します。

ファイル名は何でも良いです。また、中身は書かなくても良いです(後で VSCode から編集できます)。

(2) settings.json に追記する

VSCode を開き、以下の操作を行ってください。

  1. Ctrl+Shift+P を押し、コマンドパレットを開く
  2. 「json」などと入力し、「設定(JSON)を開く」を選択する
  3. settings.json が開くので、以下を追記する
    "vim.vimrc.enable": true,
    "vim.vimrc.path": "c:\\Users\\(ユーザー名)\\.vimrc",

path は例です。(1)で作成した .vimrc のパスを指定してください。

(3) .vimrc を編集する

  1. Ctrl+Shift+P を押し、コマンドパレットを開く
  2. 「vimrc」などと入力し、「Vim: Edit .vimrc」を選択する
  3. (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 でも何でも良いです)。

fiore
fiore

自称C++er。

関連項目