🗃️
GitのeditorがVim in Neovimになるのを防ぐ
さいきんVimとNeovimを行ったり来たりしながら作業しています。
Vim/NeovimのterminalでGit commitを行う際に、コミットメッセージを書くためにエディタを開いたところでエラーになる症状が発生しました。
どうやら、Vim in Neovim(またはNeovim in Vim)の状態になっていたことが原因のようです。
Vim/Neovimのterminalに入ると、自動的に環境変数$VIM
と$VIMRUNTIME
(そしてVimでのみ$VIM_TERMINAL
)が設定されます。
これが起動したいプログラムと不一致(Vim起動時に$VIM=nvim
である、またはその逆)になっていると正常に起動できないようです。
これに対処するために、環境変数を見てVim/Neovimを起動するスクリプトを作りました。
vix
#!/bin/bash
if [[ -n "$VIM_TERMINAL" ]]; then
# in vim
vim "$*"
else
nvim "$*"
fi
上記のスクリプトに実行権限をつけてPATHの通った場所に保存し、gitconfig
のeditorに名前を登録すればOKです。
git/config
[core]
editor = vix
これでVim内ではVimが、Neovim内ではNeovimが呼び出されます。
Discussion