Vim
Git

git commitでError detected while processing function dein#begin[1]...のエラー文が出る件


git commitするたびにエラー文が出るようになった

git commitすると以下のエラー文がでるようになってしまった。このままENTERを押すとcommitできるのだがいちいち出るのが中々面倒。

また、普通にvimと打ってvimを起動した時にはエラーが出ないので問題ないかと先送りにしていた。

▶git commit

hint: Waiting for your editor to close the file... Error detected while processing function dein#begin[1]..dein#util#_begin[6]..dein#util#_error[1]..<SNR>4_msg2list:
line 1:
E121: Undefined variable: v:t_list
E15: Invalid expression: type(a:expr) ==# v:t_list ? a:expr : split(a:expr, '\n')
Error detected while processing function dein#begin[1]..dein#util#_begin[6]..dein#util#_error:
line 1:
E714: List required
Error detected while processing function dein#end[1]..dein#util#_end[2]..dein#util#_error[1]..<SNR>4_msg2list:
line 1:
E121: Undefined variable: v:t_list
E15: Invalid expression: type(a:expr) ==# v:t_list ? a:expr : split(a:expr, '\n')
Error detected while processing function dein#end[1]..dein#util#_end[2]..dein#util#_error:
line 1:
E714: List required


vimrcに書いてあるdeinのエラー?

dein#beginからdein#endをコメントアウトしたら出なくなるのでdeinのエラーかなと疑っていてハマった。

# dein以外は問題なく動作していた。以下をコメントアウトしたらエラー文は出なくなる。

call dein#begin(expand('~/.vim/dein'))

call dein#add('Shougo/dein.vim')
...略
call dein#end()


試したこと

以下を全て試したがダメだった。


  1. vimの再インストール

  2. deinの再インストール

  3. プラグインの削除

  4. Mac再起動


解決策

色々と調べて行くうちに、vimのPATHがうんちゃらかんちゃらというコメントを発見。『もしかしてcommitする時に立ち上がるエディタのPATHが別のvimをさしているのか?』という推測がたったので確認してみたところ、vimではなくviが起動していた。

# gitのエディタ確認

▶git config --global core.editor
/usr/bin/vim

# 通常時にvimと打って起動しているvimのpath
▶which vim
/usr/local/bin/vim

やはりviをさしていた。確かMacの場合、Homebrewでインストールしたvimは/usr/local/bin/vim、viは/usr/bin/vimだった気がする(またはvim7.3を差している)。

以下のコマンドでHomebrewでインストールしたvimに直したらエラー文が出なくなった。

# git commitの時のエディタをvimに戻す

▶git config --global core.editor /usr/local/bin/vim


参考

以下の掲示板のコメントを眺めていたら今回の解決策が思いついたので、こういうやりとりも記録に残るインターネッツっていいなっていう話。

vim-jp – Lingr

http://lingr.com/room/vim/archives/2016/04/16