Я получаю эту проблему, когда я запускаю Vim с -p
опцией. Предположим, я начал с
vim -p first.txt second.txt
Затем после редактирования first.txt
я перехожу к second.txt
использованию gt
. Я нажимаю клавиши gg
и G
снова. Это приводит к ошибке
Vim: Caught deadly signal SEGV
С этого момента Vim не отвечает ни на один сигнал, в том числе Ctrl D. Я могу закрыть эту сессию только убив терминал.
Эта проблема возникает только тогда, когда я вызываю Vim с -p
опцией. Если я first.txt
сначала открою, а затем использую, :tabe
чтобы открыть second.txt
, эта проблема не возникает.
Есть идеи, почему это может произойти?
Выход vim --version
:
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:40:46)
Included patches: 1-52
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by buildd@
Huge version with GTK2-GNOME GUI. Features included (+) or not (-):
+acl +farsi +mouse_netterm +syntax
+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_gui +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 +xpm
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
system gvimrc file: "$VIM/gvimrc"
user gvimrc file: "$HOME/.gvimrc"
2nd user gvimrc file: "~/.vim/gvimrc"
system menu file: "$VIMRUNTIME/menu.vim"
fall-back for $VIM: "/usr/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H -DFEAT_GUI_GTK -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/pango-1.0 -I/usr/include/gio-unix-2.0/ -I/usr/include/freetype2 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/harfbuzz -pthread -DORBIT2=1 -D_REENTRANT -I/usr/include/libgnomeui-2.0 -I/usr/include/libart-2.0 -I/usr/include/gconf/2 -I/usr/include/gnome-keyring-1 -I/usr/include/libgnome-2.0 -I/usr/include/libbonoboui-2.0 -I/usr/include/libgnomecanvas-2.0 -I/usr/include/gtk-2.0 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/gnome-vfs-2.0 -I/usr/lib/i386-linux-gnu/gnome-vfs-2.0/include -I/usr/include/dbus-1.0 -I/usr/lib/i386-linux-gnu/dbus-1.0/include -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/orbit-2.0 -I/usr/include/libbonobo-2.0 -I/usr/include/bonobo-activation-2.0 -I/usr/include/libxml2 -I/usr/include/pango-1.0 -I/usr/include/gail-1.0 -I/usr/include/harfbuzz -I/usr/include/freetype2 -I/usr/include/atk-1.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/cairo -I/usr/include/gio-unix-2.0/ -I/usr/include/pixman-1 -I/usr/include/libpng12 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -I/usr/include/tcl8.6 -D_REENTRANT=1 -D_THREAD_SAFE=1 -D_LARGEFILE64_SOURCE=1
Linking: gcc -L. -Wl,-Bsymbolic-functions -Wl,-z,relro -rdynamic -Wl,-export-dynamic -Wl,-E -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,--as-needed -o vim -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lgobject-2.0 -lglib-2.0 -lfreetype -lgnomeui-2 -lSM -lICE -lbonoboui-2 -lgnomevfs-2 -lgnomecanvas-2 -lgnome-2 -lpopt -lbonobo-2 -lbonobo-activation -lORBit-2 -lart_lgpl_2 -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgio-2.0 -lpangoft2-1.0 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lcairo -lpango-1.0 -lfontconfig -lfreetype -lgconf-2 -lgthread-2.0 -lgmodule-2.0 -lgobject-2.0 -lglib-2.0 -lSM -lICE -lXpm -lXt -lX11 -lXdmcp -lSM -lICE -lm -ltinfo -lnsl -lselinux -lacl -lattr -lgpm -ldl -L/usr/lib -llua5.2 -Wl,-E -fstack-protector -L/usr/local/lib -L/usr/lib/perl/5.18/CORE -lperl -ldl -lm -lpthread -lcrypt -L/usr/lib/python2.7/config-i386-linux-gnu -lpython2.7 -lpthread -ldl -lutil -lm -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions -L/usr/lib/i386-linux-gnu -ltcl8.6 -ldl -lz -lpthread -lieee -lm -lruby-1.9.1 -lpthread -lrt -ldl -lcrypt -lm -L/usr/lib
Выход uname -a
:
Linux nitish 3.13.0-45-generic #74-Ubuntu SMP Tue Jan 13 19:37:48 UTC 2015 i686 i686 i686 GNU/Linux
Основываясь на комментариях @Carpetsmoker, я обнаружил, что проблема в моем .vimrc
файле. Поэтому я проверил команду, вызвавшую проблему, с некоторыми частями .vimrc
комментария. Наконец я узнал, что проблема с линией
set columns=1000
Как такая невинная команда может вызвать эту проблему? :help columns
не дает никакой полезной информации относительно этого.
vim -u NONE -p first.txt second.txt
... Это позволит предотвратить загрузку файла vimrc..vimrc
файле?Ответы:
Сигнал SEGV, также известный как segfault, почти всегда происходит из-за ошибки в программе, которую вы запускаете - в данном случае, vim. (Другими причинами являются такие вещи, как неисправное оборудование, или однажды в голубой луне, ошибки ядра).
Так что, действительно, вам нужно сообщить об ошибке.
:help bug-reports
предоставляет инструкции о том, как сообщить об ошибке. Похоже, у вас уже есть минимальный набор шагов для воспроизведения проблемы, так что это большая часть работы там. Возможно, вам следует сначала протестировать более новую версию Vim, просто чтобы убедиться, что она еще не исправлена.источник
Если ваш vim падает из-за ошибки сегментации , это указывает на нарушение доступа к памяти, которое вызвано либо ошибкой программного обеспечения, либо проблемами с оборудованием.
Если это происходит неоднократно, вы должны сделать по порядку:
vim -u NONE
и посмотрите, поможет ли это.vim
в отладчике, например:gdb vim
и проверьте обратную трассировку (после SEGV, вgdb
: введитеbt
илиbt full
).:help bugs
. Если у вас другая версия vim (например, gVim, MacVim, NeoVim), пожалуйста, сообщите об этом нужным сопровождающим.источник
-u NONE
. Кажется , что линияset columns=1000
в.vimrc
виновнике.Ошибки сегментации также могут быть связаны с взаимодействующими серверами, такими как NetBeans и тем,
autocmd
что делает недействительным буфер (например,BufNewFile
операции), который другая программа (плагин, ...) ожидает (или аналогичную) в.vim
конфигурации, попробуйте комментировать эти строки, например, в.vimrc
.Типичное сообщение об ошибке:
где
command
может быть напримерeditFile
источник