kei-p3’s blog

kei-pによる技術共有と思考整理

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なら治ってるとのこと。

そこで、brewvimをアップデートするとことに。
すると。。。

$ 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"も出なくなりました!

めでたしめでたし。