Vimで画面分割をして、編集終了時に"Vim: Caught deadly signal ABRT"し、画面が崩れ出す
最近自宅PCでも開発環境を整えようと思い、vimrcを社内のものと共有して使い出したのだが、
社内のPCでは起きないのに、個人のPCでは起きていた謎の現象に出くわしてしまいました。
その現象というのは、
Vimで縦画面表示(:vsplit
)した状態で、なんらかの編集をして:wq
で編集終了した際に"Vim: Caught deadly signal ABRT"し、画面が崩れ出す
というもの。
自分の開発環境は以下のとおりです。
起きていた現象
その時のログがこれです。
$ vi Vim: Caught deadly signal ABRT Vim: Finished. zsh: abort vi %
なにやら強制終了しているのだが、原因は不明。。。
そしてこれが出だすと困ったことに、以降シェルの表示が大変なことになります。
$ ps PID TTY TIME CMD 546 ttys000 0:02.67 -/bin/zsh 2173 ttys002 0:01.62 -/bin/zsh 2854 ttys003 0:02.07 -/bin/zsh 4338 ttys003 0:01.62 zsh 3354 ttys004 0:02.67 -/bin/zsh 5196 ttys005 0:04.83 -/bin/zsh %
これでは作業できたもんじゃない!!
ということで、なにか直す方法はないかといろいろ対処法を探してみることに。
とりあえず、Vimをアップデートしてみる
“Vim: Caught deadly signal ABRT”で検索してみると、Syntastic crashes vim on :wq with multiple splits openというIssueを発見!
pluginにsyntasticを使っているので、これが原因に違いない!
解決策は簡単で、どうやらvimの7.4.430_1なら治ってるとのこと。
そこで、brewでvimをアップデートするとことに。
すると。。。
$ brew install vim [22:03:32] ==> Downloading https://mirrors.kernel.org/debian/pool/main/v/vim/vim_7.4.712.orig.tar.gz curl: (22) The requested URL returned error: 404 Not Found Error: Failed to download resource "vim" Download failed: https://mirrors.kernel.org/debian/pool/main/v/vim/vim_7.4.712.orig.tar.gz
どうやらbrewが古すぎて、installできない模様。。。
brewをupdate
そこでbrewをupdateすることになったのだが、どうやら様子がおかしい。
$ brew update Library/brew.rb: needs merge error: you need to resolve your current index first Error: Failure while executing: git checkout -q master
なにやら、brewのリポジトリが競合しているようだ。。。
競合を解決しなければいけないようだが、解決できる気配がしない。
そこで調べてみるとこんな記事(brew update failure while executing git checkout)を発見。
これをやれとのこと。
$ cd `brew --prefix` $ git remote add origin https://github.com/Homebrew/homebrew.git $ git fetch origin $ git reset --hard origin/master $ brew update
要は、remoteの最新の状態にリセットしちゃえと。
試してみると、見事成功!
そして無事、vimも最新バージョンになり、
"Vim: Caught deadly signal ABRT"も出なくなりました!
めでたしめでたし。