VSCode と NeoVim 拡張機能セットアップについて

VSCode Neovim

Neovim vscode

vscode-vim について、少しもっさりしてきていたので neovim の拡張機能に移行しました。
VSCodeおすすめの拡張機能になります。
今回は VSCode-Neovim のセットアップ方法についてご説明いたします。
特になんといってものメリットは、vimの資産たちのプラグインが使えるものがあるということです!

目次

Neovim インストール

neovim については 0.5 版以上のものが必要です。
それぞれの環境で以下のコマンドで neovim をインストールしてください。

windows をお使いの方は choco などがおすすめ

choco install neovim --pre

ubuntu

sudo apt update
sudo apt upgrade
sudo apt install neovim

mac

brew install neovim

以下のコマンドでエディタが起動すれば、インストール完了です。

nvim

この先のために、vim plug もインストールしておきましょう。
vim-plug

ubuntu mac

sh -c 'curl -fLo "${XDG_DATA_HOME:-$HOME/.local/share}"/nvim/site/autoload/plug.vim --create-dirs \
       https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim'

windows

iwr -useb https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim |`
    ni "$(@($env:XDG_DATA_HOME, $env:LOCALAPPDATA)[$null -eq $env:XDG_DATA_HOME])/nvim-data/site/autoload/plug.vim" -Force

VSCode で neovim 拡張機能のインストール

cli 環境で以下を入力

code --install-extension asvetliakov.vscode-neovim

もしくは、VSCode で Quick Open(Ctrl+P)を開き以下のコマンドを入力する。

ext install asvetliakov.vscode-neovim

neovim のパス環境を設定する。

nvim のパスを確認し、settings.json に出力されたものを設定する。
nvim のパスは ubuntu などでは以下のコマンドで確認できる。

which nvim

windows の nvim パス確認コマンド

gcm nvim | fl

上記で出力された結果を settings.json に追記する。

  "vscode-neovim.neovimExecutablePaths.linux": "/usr/bin/nvim",

Open Settingsをし、GUIでも設定可能です。

ctrl+shift+p などで Reload Window を実行する

vscode の挙動が vim のキーバインドになっていることを確認する。

neovim 設定ファイルの場所を vscode に登録する。

vim の vimrc は neovim では init.vim になります。

init.vim ファイルが既存であればそちらのパスを vscode に登録し、なければ作って登録します。
登録は settings.json に以下のように追記します。

  "vscode-neovim.neovimInitVimPaths.linux": "~/.config/nvim/init.vim",

また、init.vim が既存である方は vscode で有効になるプラグラインもあれば、無いプラグインもあると思います。
そんなときは以下のように init.vim の設定を分岐させれば ok です。

if exists('g:vscode')
    " VSCode extension
    call plug#begin()
    Plug 'tpope/vim-commentary' "コメントプラグイン
    Plug 'tomasiser/vim-code-dark' "vimのカラースキーマ
    Plug 'leafgarland/typescript-vim' "Typescriptのカラースキーマ
    Plug 'rhysd/clever-f.vim'
    Plug 'tpope/vim-surround'
    Plug 'terryma/vim-expand-region'
    call plug#end()

    xmap gc  VSCodeCommentary
    nmap gc  VSCodeCommentary
    omap gc  VSCodeCommentary
    nmap gcc VSCodeCommentaryLine

    nnoremap  fp call VSCodeNotify('workbench.action.quickOpen')
    nnoremap  fgs call VSCodeNotify('workbench.view.scm')

    map v (expand_region_expand)
    map  (expand_region_shrink)

    set clipboard=unnamed,unnamedplus
else
    call plug#begin()
    " Plug 'junegunn/fzf.vim'
    Plug 'junegunn/fzf', { 'do': { -> fzf#install() } }
    Plug 'neoclide/coc.nvim', { 'branch': 'release' }
    Plug 'tpope/vim-fugitive'
    Plug 'tpope/vim-commentary' "コメントプラグイン
    Plug 'tomasiser/vim-code-dark' "vimのカラースキーマ
    Plug 'lambdalisue/fern.vim' "ファイラー
    Plug 'lambdalisue/fern-git-status.vim' "ファイルツリーにgit差分表示
    Plug 'lambdalisue/fern-renderer-nerdfont.vim' "ファイラーのアイコン用2
        ・
        ・
        ・
endif

vscode-neovim おすすめのプラグインについて

vscode で使用可能なプラグインは yutkat さんが zenn でまとめています。

超融合!時空を超えた絆 Neo Vim(VSCode)を試してみた

特に上記の中でも私は以下をおすすめします。

  • vim-surround
  • clever-f
  • vim-expand-region

vim-surround

vim-surround

vim-surround については vscode-vim でもありましたね。
単語の周りだったりにカッコやクオテーションをコマンドで入力しやすくするものです。
例)  word → コマンド ysiw’ → ‘word’
となるようなものです。

clever-f

clever-f

こちらは横移動を協力にしてくれるプラグインです。
例えば vim では標準で f で文字検索を横に展開するのですが、それを f コマンドのみで実施できるものになります。

詳しくはリンク先をチェック

vim-expand-region

vim-expand-region

こちらはビジュアルモードの選択範囲をショートカットコマンドで広げられるプラグインになります。
vim のビジュアルモードで選択した単語を ctrl+shift+f などを押すとビジュアルモードで選択された単語がそのまま検索できたりするので、vscode の使い勝手も少し良くなるのかなと思います。

ファイルツリーの操作を vim のキーバインドにする。

vscode-vim ではファイルツリー操作がデフォルトで jk などで移動できたのですが、neovim ではインストールするだけでは移動できません。
以下の内容を settings.json に追記し、vscode 既存のキーバインドを無効にする必要があります。

  "workbench.list.automaticKeyboardNavigation": false,

これでjやkなどでファイルツリーの移動が可能になります。

jj のコマンドでエスケープを入力する。

以下の設定を keybindings.json に追記してください。

  {
    "command": "vscode-neovim.compositeEscape1",
    "key": "j",
    "when": "neovim.mode == insert && editorTextFocus",
    "args": "j"
  },

まとめ

いかがだったでしょうか。
neovim を使うとより一層スピーディーな開発体験が得られると思います。
なにかあれば随時記事を更新します。
よく vim ライフを。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

数学科出身のSoftware Engineer
情報通信が好きなのでブログを活用して発信しています。

コメント

コメントする

目次
閉じる