Nie panikuj!
Odzyskiwanie plików jest zawsze bezpieczne, ponieważ vim nigdy nie zapisuje żadnych zmian, dopóki sam ich nie napiszesz. Odzyskiwanie z pliku wymiany, a następnie zamykanie bez zapisywania niczego nie zmieni.
Uporządkuj swoje pliki wymiany:
Pobierz vim, aby umieścić wszystkie swoje pliki wymiany w tym samym miejscu, abyś zawsze wiedział, gdzie one są:
set directory^=$HOME/.vim/swap//
lub gdziekolwiek wolisz. Użycie //
na końcu nazwy pliku powoduje, że vim używa bezwzględnych ścieżek do nazw plików wymiany, więc nie dostajesz kolizji nazw. Upewnij się, że katalog istnieje, bo vim go nie użyje (nie utworzy go dla ciebie).
Uwaga: Działa to tylko w przypadku zmiennych środowiskowych, jeśli chcesz użyć zmiennej vimscript, musimy użyć :execute
magii:
execute "set directory^=".my_vim_home_var."/swap//"
Zróżnicuj różnice:
Help Vim sugeruje bardzo przydatne polecenia do wykorzystania w tej sytuacji: :DiffOrig
. To nie jest domyślne polecenie vim , więc skopiuj implementację z :h :DiffOrig
do swojego vimrc. (dotyczy to również wersji $VIMRUNTIME/defaults.vim
vim8). Teraz możesz odzyskać plik i po prostu uruchomić DiffOrig, aby uzyskać vimdiff tego, co zmieniło się od niezmodyfikowanej wersji.
Jeśli chcesz porównać zawartość wielu plików wymiany, odzyskaj plik z każdym innym plikiem wymiany, a następnie zapisz wynik w plikach tymczasowych. Teraz załaduj pliki i uruchom :diffthis
każdy plik, dokonaj żądanych zmian, zapisz z powrotem do oryginalnego pliku oraz usuń pliki tymczasowe i zamień.
Przydatne polecenia:
:swapname
: pobierz nazwę, której używa vim dla pliku wymiany dla bieżącego bufora ( :h :swapname
)
:recover
: odzyskuje wybrany plik, tak samo jak po uruchomieniu vima i naciśnięciu R( :h :recover
)
Sprawdź pomoc:
Vim ma cały rozdział instrukcji użytkownika na prostą: :usr_11.txt
pomoc odniesienia Vim jest na plikach wymiany: :h swap-file
, h recovery
Pomoc w opcji katalogów (do ustawiania wymiany lokalizację pliku)::h 'directory'
Edycja: Zmodyfikowany przykład ustawienia katalogu, jak wskazano w komentarzach @B Layer