見出し画像

M1・M2 Macbook 環境でのVSCodeでNEOVIM

M2チップのMac book airを購入。色々インストールし直し。
ところがVSCodeでNEOVIMが動かなくなったので、なんとかしてたら無事動いたので覚書。(なんとかなーれ)

環境

本体: M2 Mac Book air 2022 
          (おそらくAppleシリコンチップのMac全般だと思われる)
コードエディタ: VS Code
プラグイン: VSCode Neovim by Alexey Svetliakov氏

VSCode Neovimプラグイン

目的

M2 Mac book 環境のVSCode でNeovim を使えるようにする。

問題

通常の Intel チップの過去のMacでのインストール手順だとNeovimが動作しない。

このようなメッセージが出てきて動かない。

原因

Apple シリコンチップ(M1 M2)だとHomebrewでインストールしたNeovimのディレクトリのパスが過去の通常のイントール手順と違うためと思われる。
Neovimが/usr/local/bin/nvim に無いため。

解決方法

VS Codeの設定でNeovimのパスを新しく正しいものに書き変える。

VS Codeのsettings.jsonに通常下記のようにNeovimのパスを書き込むがうごかない。

"vscode-neovim.neovimExecutablePaths.darwin": "/usr/local/bin/nvim"

M1M2チップの場合下記のような新しい パスを書き込む必要がある。
/opt/homebrew/bin/nvimに移動しているため。

"vscode-neovim.neovimExecutablePaths.darwin": "/opt/homebrew/bin/nvim"

インストールを含めた解決手順

①Homebrewをインストール

HomebrewのページからInstall HomebrewのコードをMacのTerminalへ入力

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

パスワードを求められると思うのでパスワード入れて、ここで通常ならそのままインストールが完了する。

インテルチップの場合 このまま/usr/local/bin/にインストール先が指定されるのだけど、M1M2チップの場合別のパスの追加が必要になってくる(後述)

けっこう時間がかかるので。お茶🍵でも淹れると良い。

Terminalから最後に次のような指示がでてくる。

==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザー名/.zprofile
    eval "$(/opt/homebrew/bin/brew shellenv)"
- Run brew help to get started
- Further documentation:
    https://docs.brew.sh

Homebrewを追加するため2つのコマンドを実行しろとのこと。
(ここの段階でインテルチップのころのパスと変わってくるため後々NeoVimを使うときに問題が発生するよう。)

下記のコードをターミナルにいれて実行する。
このnote記事にある下記コードから直接コピーじゃなくて、ターミナルの指示からコピペする。ユーザー名となっている部分は自分のMacのものを使わないといけないため。

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザー名/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

これでやっとbrewコマンドが使えるようになる。

②NeoVimのインストール

Homebrewが使えるようになったのでまずはNeovimをインストール。

brew install neovim

③Neovim用のcofingファイルを作る

次にNeovimのconfig用のフォルダを作る。

mkdir ~/.config/nvim

mkdirはフォルダを作るコマンド

そしてその中にNeovimのconfigファイルinit.vimを作る。

touch ~/.config/nvim/init.vim

touch はファイルを作るコマンド

④configファイルにコード書き込み

*VScode Neovimプラグインの指示によるとvimのプラグインはVScode上でいろいろ問題を起こしてしまうため空のinit.vimから始めることを推奨のもよう。

さっき作ったinit.vimにVSCode上でneovimが動かすためにコード書き込みが必要。
まずはinit.vimをターミナル上のvimで開く。

vim 〜/.config/nvim/init.vim

開いたvimエディタで下記のコードを書き込み。
iでインサートモード、下記のコードをコピペ貼り付け。ESCでインサートモードを抜ける。。(そもそもNeovim使う人向けの記事なので説明いらないよね。。)

if exists('g:vscode')
    " VSCode extension
else
    " ordinary neovim
endif

:wq
Vim コマンド :wq 書き込み保存して終了する。
これでconfigファイル作成完了。

⑤VSCodeの設定ファイルにNeovimを読み込むように設定

*VSコード本体のインストールとVSCode Neovimプラグインはすでにしてあるものとします。

VSCodeのsettings.jsonコードに下記のコードを追加。
ユーザー名のところはご自身のユーザー名を。

{
   "vscode-neovim.neovimExecutablePaths.darwin": "/opt/homebrew/bin/nvim",
   "vscode-neovim.neovimInitVimPaths.darwin": "Users/ユーザー名/.config/nvim/init.vim"
}

インテルチップの頃は下記のようなコードだった。
Pathが"/usr/local/bin/nvim"

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

しかし、M1M2チップ用のHomebrewのインストール先が変わったため。
/opt/homebrew/bin/nvimと指定しなければならなくなった。

"vscode-neovim.neovimExecutablePaths.darwin": "/opt/homebrew/bin/nvim"

これでNeovimの指定先とconfigファイルinit.vimの指定先も正しく設定できたので動くはず!


別の課題

古いインテルチップMacと設定をシンクさせると、パスの指定先が変わり古いインテルチップでは動かなくなるため注意。Settingsファイルはシンクさせないなどの処理が必要。

プラグインは「Setting Sync」を使用。なにか良い解決方法ご存知あればコメントください。


その他ついでに、新規でインストールする際の役立ち情報

別記事にするかも。

Im-select : ESCを押したときに常に英語入力モードにする。

ノーマルモードへ抜けた時、ひらがな日本語入力だとおかしなことになるので、自動的に英語入力にしたい場合

①Im-slectのインストール

インストールは下記のコマンド

brew tap daipeihust/tap && brew install im-select

*これももちろん /opt/homebrew/bin/im-selct にインストールされる。

②自分の使いたい英数字のIMEを確認

im-selectは、下記のコマンドをTerminal でim-select入力すると現在使用している入力ソフト(IME)を教えてくれます。 

im-select

Mac標準のUSレイアウトの英数字キーボード入力をつかっていたら、下記のように表示されます。

com.apple.keylayout.US

これを覚えておきます。

③init.vimファイルに書き込み

さきほどNeovimインストール時に作ったinit.vimに下記のように書き込みます。前述で書き込んだVSCode用のコードは残しておくこと。

let g:im_select_default = 'com.apple.keylayout.US'

if executable('im-select')
autocmd InsertLeave * :call system('im-select com.apple.keylayout.US')
autocmd CmdlineLeave * :call system('im-select com.apple.keylayout.US')
endif

インサートモードからノーマルモードに切り替えたとき自動的に英数字入力モードになってくれーというコード。

「キー入力のリピート」キーボード押しっぱでのリピートを有効にする。

Vimのキーバインドを使っていてjやkはたくさん押すことになるけど、連続して打つのは大変。押しっぱで連続入力する。

下記のコードをターミナルで実行。macの設定を変更。

defaults write com.microsoft.VSCode ApplePressAndHoldEnabled -bool false 
defaults write com.microsoft.VSCodeInsiders ApplePressAndHoldEnabled -bool false

VScodeだけじゃなくてグローバルでもリピートしたい場合は下記のコードも実行。他のところの文字入力とかでE-mac like キーバインド使ってると便利。とくにnoteの編集にも良いと思います。

defaults delete -g ApplePressAndHoldEnabled

参考How to Enable Key-Repeating for Vim

キーリピート入力の速さ

あとMacのシステム設置のキーボードからキーのリピートの速度も速くしとくと快適。


この記事が気に入ったらサポートをしてみませんか?