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 無事起動。
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 $ 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 無事起動しました。
ruby を同じように編集してみたところ、autocomplete で落ちなくなっていたので解決したと思います。
以上です。
Drew Neil アスキー・メディアワークス 2013-08-29