Ich bekomme dieses Problem, wenn ich Vim mit -p
Option starte . Angenommen, ich habe mit angefangen
vim -p first.txt second.txt
Dann gehe first.txt
ich nach der Bearbeitung zur second.txt
Verwendung über gt
. Ich drücke die Tasten gg
und noch G
einmal. Dies erzeugt den Fehler
Vim: Caught deadly signal SEGV
Ab diesem Zeitpunkt reagiert Vim nicht mehr auf ein Signal, einschließlich Ctrl D. Ich kann diese Sitzung nur schließen, indem ich das Terminal töte.
Dieses Problem tritt nur auf, wenn ich Vim mit -p
Option aufrufe . Wenn ich first.txt
zuerst öffne und dann :tabe
zum Öffnen verwende second.txt
, tritt dieses Problem nicht auf.
Irgendwelche Ideen, warum dies auftreten könnte?
Ausgabe von vim --version
:
VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 2 2014 19:40:46)
Included patches: 1-52
Modified by [email protected]
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
Ausgabe von 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
Aufgrund von Kommentaren von @Carpetsmoker fand ich heraus, dass das Problem an meiner .vimrc
Datei liegt. Also habe ich überprüft, ob das Problem den Befehl verursacht, wobei einige Teile der .vimrc
Datei kommentiert wurden. Schließlich fand ich heraus, dass das Problem bei der Leitung liegt
set columns=1000
Wie kann ein so unschuldiger Befehl dieses Problem verursachen? :help columns
gab keine nützlichen Informationen dazu.
vim -u NONE -p first.txt second.txt
... starten. Dadurch wird das Laden Ihrer vimrc-Datei verhindert..vimrc
Datei vorliegt?Antworten:
Das SEGV-Signal, auch als Segfault bezeichnet, ist fast immer auf einen Fehler im Programm zurückzuführen, das Sie ausführen - in diesem Fall vim. (Andere Ursachen sind Dinge wie defekte Hardware oder einmal im blauen Mond Kernel-Bugs).
Sie müssen also wirklich einen Fehler melden.
:help bug-reports
Enthält Anweisungen zum Melden eines Fehlers. Es hört sich so an, als hätten Sie bereits eine minimale Anzahl von Schritten, um das Problem zu reproduzieren. Das ist also der größte Teil der Arbeit dort. Sie sollten jedoch wahrscheinlich zuerst eine neuere Version von Vim testen, um sicherzustellen, dass diese noch nicht behoben wurde.quelle
Wenn Ihr vim aufgrund eines Segmentierungsfehlers abstürzt , weist dies auf eine Verletzung des Speicherzugriffs hin, die entweder durch Softwarefehler oder Hardwareprobleme verursacht wird.
Wenn dies wiederholt vorkommt, sollten Sie Folgendes tun:
vim -u NONE
und prüfen Sie, ob dies hilfreich ist.vim
unter Debugger zu laufen , z. B.:gdb vim
Und suchen Sie nach dem Backtrace (nach SEGV ingdb
: typebt
oderbt full
).:help bugs
. Wenn Sie eine andere Version von vim haben (wie gVim, MacVim, NeoVim), melden Sie dies bitte den richtigen Betreuern.quelle
-u NONE
. Scheint, die Linieset columns=1000
in.vimrc
ist der Schuldige.Segmentierungsfehler können auch mit interagierenden Servern wie Netbeans verbunden sein und
autocmd
einen Puffer (z. B.BufNewFile
Operationen) ungültig machen, den ein anderes Programm (Plugin, ...) in der.vim
Konfiguration erwartet (oder ähnlich) . Versuchen Sie, diese Zeilen in z.vimrc
.Typische Fehlermeldung ist:
wo
command
kann zB seineditFile
quelle