Jak uzyskać vima, aby zachować historię cofania?


36

Jeśli edytuję dwa pliki za pomocą vima, zmiana na inny plik (: bnext,: bprev) wydaje się usuwać historię cofania z otwartego pliku - naciśnięcie klawisza „u” zgłasza „Już przy najstarszej zmianie”.

Na przykład:

  1. vim testfile1 testfile2
  2. dodaj kilka rzeczy do pliku testowego1
  3. :w
  4. :bn
  5. :bp
  6. u
  7. eep! nie można cofnąć!

Czy jest jakiś sposób na zachowanie tej historii dla niewidocznych buforów?


czy powinno to być w superużytkowniku czy przepełnieniu stosu?
Ressu,

@Ressu - dobry punkt, jak to powiedzieć? Meta pytanie wysłane: meta.ubuntu.stackexchange.com/questions/47/…
Jeremy Kerr

W zależności od wyniku tego meta pytania prawdopodobnie to usunę.
Jeremy Kerr

Odpowiedzi:


42

Najnowsza wersja vima (7.3) ma trwałe cofanie, dzięki czemu możesz dokonać zmiany, całkowicie zamknąć vim (nawet zamknąć i zrestartować), zrestartować vim i cofnąć. W twoim .vimrc:

" tell it to use an undo file
set undofile
" set a directory to store the undo history
set undodir=/home/yourname/.vimundo/

11
Zauważ, że musisz najpierw utworzyć katalog, vim nie robi tego automatycznie. Cofnij pliki są zapisywane przy użyciu ścieżki systemu plików (w tym samym czasie podczas zapisywania pliku). Jeśli tam jesteś /home/peter, edycja .bashrcutworzy plik /home/peter/.vimundo/%home%peter%.bashrc.
Lekensteyn,


1

Możesz użyć rzutni .
„vim -o testfile1 testfile2” - otwieraj pliki w podzielonym oknie.
„: sp nazwa pliku” - podziel i otwórz „nazwa pliku”.
„: vsp nazwa pliku” - podział pionowy i otwarcie „nazwa pliku”.
„Ctrl + w + strzałka” - Zmień rzutnię.


Wolałbym nie przechowywać stale widocznego bufora dla każdego pliku; nie jest niczym niezwykłym, aby otworzyć jednocześnie> 20 plików.
Jeremy Kerr
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.