Wie erhalte ich VIM, um mich an die Zeile zu erinnern, in der ich war, als ich eine Datei erneut öffne? [Duplikat]

14

Ich bin gerade von RH / Fedora zu Ubuntu 12.04 gewechselt. Wenn ich in RedHat eine Datei mit VIM erneut öffne, öffnet sich der Cursor in der Zeile, in der sie sich befand, als ich die Datei geschlossen habe. Was ich jedoch jetzt sehe ist, dass wenn ich eine Datei wieder öffne, der Cursor immer an der Spitze ist, jede Zeit. Da einige der Dateien, mit denen ich arbeite, 20 k Zeilen lang sind, wird dies schnell etwas alt.

Ich habe die Vollversion von VIM über apt-get auf meinem neuen Ubuntu installiert, so dass ich die Pfeiltasten im Einfügemodus verwenden konnte. Die ausgedruckte Version ist VIM - Vi IMproved 7.3.

Jede Hilfe wäre dankbar willkommen.

    
pennyrave 17.10.2012, 15:33
quelle

2 Antworten

30

Fügen Sie Ihrem ~/.vimrc oder global /etc/vim/vimrc

die folgenden Zeilen hinzu
if has("autocmd")
  au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

Dies springt zur letzten bekannten Cursorposition, außer:

  • Die Position ist ungültig
  • Die Position befindet sich in einem Event-Handler
Sentry 17.10.2012, 15:40
quelle
9

Dies ist eine Standardkonfiguration in / etc / vim / vimrc, wie bereits erwähnt vim is not Sich an die letzte Position erinnern

Enthält bereits notwendige Funktion. Ich muss es nur auskommentieren:

" Uncomment the following to have Vim jump to the last position when
" reopening a file
if has("autocmd")
  au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
endif

Dies ist ein automatischer Befehl, der nach Zeilennummern der ausgewerteten Ausdrücke sucht. Der Befehl g springt zur letzten Position, wenn er aufgezeichnet wurde. Mit Hilfe von help-Befehlen für BufReadPost erklären line () und g ', wie das funktioniert.

    
grantbow 19.01.2013 03:50
quelle

Tags und Links