vscode vim → vscode neovim に移行したときの忘備録を記載

まず cursor でお試しした

  1. vscode vim を非活性
  2. vscode neovim をインストール
  3. vscode neovim の設定
    • nvim のパス指定,os ごとに指定できる
    • nvim の設定ファイルのエントリー(init.lua)
    • Affinity の install
  4. init.lua の書き換え (dein.nvim を利用)
require('keymap-common')
dein#add(common-toml.toml)
if vim.g.vscode === 1
	require('keymap-vscode')   -- vscode用
	dekin#add(vscode-toml.toml)
else
	require('keymap-neovim')
	dein#add(neovim-toml.toml) -- 
end
  1. 特定のパターンの対応
    • easy-motion が動かない
      • jumpy2 で代用
    • keybinding.json を酷使
      • 結局一つも vscode.action() を利用しなかった
    • ctr-w 関連の window 操作の対応
      • keybinding.json で代用
    • vim-surround
      • vim-surround を利用
      • Vscode-neovim: Mouse Selection Debounce Time が猶予時間になるため 300 に設定
      • dein 使い物にならないので別のパッケージマネージャー使ってる w
    • multi-cursor
      • vscode-multi-cursor を利用
      • よくわからんが vscode の ctr+d を使うようになった

operator-pending mode がないため vim.cmd を利用するように修正

vim.cmd[[nnoremap <silent> <space> <cmd>lua require('vscode-neovim').call('vspacecode.space')<cr>]]

vscode への対応

  • keybindings.json をコピー(cursor のやつ)
  • dotfile を pull
  • vscode-vim をオフにして vscode-neovim をオンにする
    • windows は neovim の設定ファイルと nvim のパスを指定
      • C:\\Users\\ のようにバクすらで記述
    • Vscode-neovim: Mouse Selection Debounce Time の設定も忘れずに
  • jumpy2 入れる

Add to your settings.json:

  • jj to escape
{
    "vscode-neovim.compositeKeys": {
        "jj": {
            "command": "vscode-neovim.escape",
        },
    },
}
  • jk to escape and save
{
    "vscode-neovim.compositeKeys": {
        "jk": {
            // Use lua to execute any logic
            "command": "vscode-neovim.lua",
            "args": [
                [
                    "local code = require('vscode')",
                    "code.action('vscode-neovim.escape')",
                    "code.action('workbench.action.files.save')",
                ],
            ],
        },
    },
}