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()
試したこと
以下を全て試したがダメだった。
- vimの再インストール
- deinの再インストール
- プラグインの削除
- 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