vimでPythonのコードを書いてると落ちるので対処する 2 19, 2016

vimでPython書いてると落ちるようになってしまったので,対処した話.
neocompleteがトリガで.オムニ補完が原因で死んでたらしい.

vimが死ぬ

Pythonのコードを書いていると,いきなりvimが閉じて,

Vim: Caught deadly signal TRAP
Vim: preserving files...
Vim: Finished.
Trace/breakpoint trap (core dumped)

となって,クラッシュしてしまう.

タイミング的には,"."を打ち込んだ時だったので,補完で使っているプラグインneocompleteか?
と思っていた.

neocompleteは悪く無い

調べてみると,neocomplcacheを使っている人で同様の症状がでている人がいるようだった.

neocomplcacheのオムニ補完がこけていたのだという事が判明したので、特定の言語についてオムニ補完を無効にしてみます。 neocomplcacheのドキュメントに書いてあるとおりにオムニ補完を無効。
もしもneocomplcacheでコケてしまった時の解決法 - SEGVな毎日

なるほどと思ってneocompleteのドキュメントを読んでみると,ちゃんと対処法が書いてあった

公式のドキュメントにもあるが,これはオムニ補完のところで死んでいるようなので,
neocompleteには責任はない.

Pythonで症状がでていたが,どうやらRubyでも症状が出るようだ.

解決策

と,いうことで.vimrcにPythonのオムニ補完の無効化を記述する.

" Disable omnifunc in Python
if !exists('g:neocomplete#sources#omni#input_patterns')
    let g:neocomplete#sources#omni#input_patterns = {}
endif
let g:neocomplete#sources#omni#input_patterns.python = ''