vim が autocomplete で落ちるのを対応メモ。

vimで編集中に落ちるようになってしまったのでその対応メモ。

環境

  • OS: Ubuntu 12.04 64bit
  • Vim: 7.3
  • paco: 2.0.9

現象

rubyソースで . と1文字打つと

Vim: 致命的シグナル SEGV を検知しました

とエラーメッセージが表示され落ちる。
以前はこんなことなかった。

hoge.f 例えばこんな感じで f を打った時に落ちる。
どうやら autocomplete の時に落ちている模様。

ただし、phpソースなどのruby以外のソースでは発生しない。

久しぶりにrubyソースを開いたので、正常に動いていた時から何を変更したかが把握できていないため原因はよくわかってません。

対応内容

rails.vim が問題だとかいう話も見たので外してみたり設定変えてみたりしたのですが結果は同様に落ちます。

最新のvimなら落ちないというような話も見たので、とりあえずソースからインストールしてみます。

vim をソースからインストールする。

ソースから入れなおすので apt でインストールした vim を削除します。

Terminal
1
$ sudo aptitude remove vim-gnome

ソースをダウンロードして展開。

Terminal
1
2
3
$ wget ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2
$ tar jxvf vim-7.3.tar.bz2
$ cd vim73

パッチを当てる。現在までで905まで出てる模様。すべて当てます。

Terminal
1
2
3
4
5
$ mkdir patches
$ cd patches/
$ curl -O 'http://ftp.vim.org/pub/vim/patches/7.3/7.3.[001-905]'
$ cd ../
$ cat patches/* | patch -p0

pacoを利用してインストールします。

Terminal
1
2
3
$ ./configure --with-features=huge --enable-multibyte --enable-rubyinterp
$ make
$ sudo paco -D make install

インストールできたか確認。

Terminal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
$ vim --version
VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Apr 19 2013 10:42:04)
Included patches: 1-905
Huge version without GUI. Features included (+) or not (-):
+arabic +file_in_path +mouse_sgr +tag_binary
+autocmd +find_in_path -mouse_sysmouse +tag_old_static
-balloon_eval +float +mouse_urxvt -tag_any_white
-browse +folding +mouse_xterm -tcl
++builtin_terms -footer +multi_byte +terminfo
+byte_offset +fork() +multi_lang +termresponse
+cindent -gettext -mzscheme +textobjects
+clientserver -hangul_input +netbeans_intg +title
+clipboard +iconv +path_extra -toolbar
+cmdline_compl +insert_expand -perl +user_commands
+cmdline_hist +jumplist +persistent_undo +vertsplit
+cmdline_info +keymap +postscript +virtualedit
+comments +langmap +printer +visual
+conceal +libcall +profile +visualextra
+cryptv +linebreak -python +viminfo
+cscope +lispindent -python3 +vreplace
+cursorbind +listcmds +quickfix +wildignore
+cursorshape +localmap +reltime +wildmenu
+dialog_con -lua +rightleft +windows
+diff +menu +ruby +writebackup
+digraphs +mksession +scrollbind +X11
-dnd +modify_fname +signs +xfontset
-ebcdic +mouse +smartindent -xim
+emacs_tags -mouseshape -sniff +xsmp_interact
+eval +mouse_dec +startuptime +xterm_clipboard
+ex_extra -mouse_gpm +statusline -xterm_save
+extra_search -mouse_jsbterm -sun_workshop
+farsi +mouse_netterm +syntax
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
user exrc file: "$HOME/.exrc"
fall-back for $VIM: "/usr/local/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -I/usr/local/include -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: gcc -L. -fstack-protector -rdynamic -Wl,-export-dynamic -L/usr/local/lib -Wl,--as-needed -o vim -lSM -lICE -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lnsl -ldl -Wl,-R -Wl,/home/nanigashi/.rvm/rubies/ruby-2.0.0-p0/lib -L/home/nanigashi/.rvm/rubies/ruby-2.0.0-p0/lib -lruby -lpthread -lrt -ldl -lcrypt -lm -L/home/nanigashi/.rvm/rubies/ruby-2.0.0-p0/lib

一応は無事インストールできました。

Terminal
1
$ vim

無事起動。

gvimが無い。

次にGUIで起動してみます。

Terminal
1
2
$ gvim
zsh: command not found: gvim

コマンドが無い。

Terminal
1
2
$ vim -g
E25: GUI cannot be used: Not enabled at compile time

gvimが無い。

ログを見直してみる。

Terminal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
checking --enable-gui argument... GNOME 2.x GUI support
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config... /usr/bin/pkg-config
checking for GTK - version >= 2.2.0... no
checking X11/SM/SMlib.h usability... yes
checking X11/SM/SMlib.h presence... yes
checking for X11/SM/SMlib.h... yes
checking X11/xpm.h usability... no
checking X11/xpm.h presence... no
checking for X11/xpm.h... no
checking X11/Sunkeysym.h usability... yes
checking X11/Sunkeysym.h presence... yes
checking for X11/Sunkeysym.h... yes
checking for XIMText in X11/Xlib.h... yes
no GUI selected; xim has been disabled

どうやらGUIが有効になってなかったみたいです。

GUI を有効にして vim を再インストールする。

vim を一旦アンインストール。

Terminal
1
2
3
$ sudo paco -r vim73
Remove package vim73 (y/N) ? y #=> yを入力
$ make distclean

GUIを有効にするには libgtk2.0-dev が必要みたいなのでインストール。

Terminal
1
$ sudo aptitude install libgtk2.0-dev

--enable-xim --enable-x --enable-gui=gnome2 のオプションをつける

Terminal
1
$ ./configure --with-features=huge --enable-multibyte --enable-rubyinterp --enable-xim --enable-x --enable-gui=gnome2

ログを確認。

Terminal
1
2
3
4
checking --enable-gui argument... GNOME 2.x GUI support
checking --disable-gtktest argument... gtk test enabled
checking for pkg-config... /usr/bin/pkg-config
checking for GTK - version >= 2.2.0... yes; found version 2.24.10

有効になっている模様。

インストール。

Terminal
1
2
$ make
$ sudo paco -D make install

起動。

Terminal
1
$ gvim

無事起動しました。

ruby を同じように編集してみたところ、autocomplete で落ちなくなっていたので解決したと思います。

以上です。

© 2018 磁力式駆動 All Rights Reserved.
Theme by hiero