Komunikat o błędzie wymiany pliku podczas próby edycji pliku .vimrc?

5

Za każdym razem, gdy próbuję otworzyć .vimrcplik, otrzymuję ten komunikat. Korzystam z vimtutorinnego terminalu, ale nie sądzę, żebym otworzył jakieś dodatkowe. vimrcplik. Dlaczego widzę ten błąd i jak mogę go naprawić?

E325: ATTENTION
Found a swap file by the name ".vimrc.swp"
          owned by: subhrcho   dated: Wed Dec 26 05:54:45 2012
         file name: ~subhrcho/.vimrc
          modified: YES
         user name: subhrcho   host name: slc04lyo
        process ID: 26176
While opening file ".vimrc"
             dated: Mon Jan 28 22:45:16 2013
      NEWER than swap file!

(1) Another program may be editing the same file.
    If this is the case, be careful not to end up with two
    different instances of the same file when making changes.
    Quit, or continue with caution.

(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r .vimrc"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".vimrc.swp"
    to avoid this message.

Swap file ".vimrc.swp" already exists!
Maniak
źródło

Odpowiedzi:

8

Plik wymiany ma miesiąc (26 grudnia), więc prawdopodobnie należy go zapisać, aby go usunąć. Tego dnia prawdopodobnie zabiłeś instancję Vima (lub uległa awarii), pozostawiając plik wymiany. Vim nigdy sam ich nie wyczyści, musisz go usunąć samodzielnie (lub wybrać opcję usuwania , gdy Vim o to poprosi).

BTW, odzyskiwanie.vim - Pokaż różnice dla wtyczki odzyskanych plików znacznie poprawia jakość wymiany plików, np. Oferując pokazanie różnic zmian.

Ingo Karkat
źródło
czy plik piły jest rzeczą uniksową, czy vim?
Geek
3
Inne edytory mogą mieć podobne mechanizmy za kulisami, ale pliki wymiany są specyficzne (i raczej widoczne) w Vimie. Zobacz :help swap-fileszczegóły.
Ingo Karkat
4

vi używa pliku wymiany do przechowywania kopii zmian, dopóki ich nie zapiszesz lub nie odrzucisz.

Ten błąd występuje, ponieważ:

  • Edytujesz .vimrcdwa razy (nieprawdopodobne, ponieważ używasz tylko vimtutor).

  • vizostał zabity podczas .vimrcedytowania.

W drugim przypadku vinie można wyczyścić pliku wymiany .vimrc.swp, więc ładnie pyta, czy chcesz odzyskać zmiany, czy je odrzucić:

(2) An edit session for this file crashed.
    If this is the case, use ":recover" or "vim -r .vimrc"
    to recover the changes (see ":help recovery").
    If you did this already, delete the swap file ".vimrc.swp"
    to avoid this message.

Jeśli nie wprowadziłeś żadnych zmian .vimrc(na przykład użyłeś vido otwarcia pliku - w przyszłości użyjesz go lesszamiast tego), po prostu usuń plik:

$ rm .vimrc.swp

Jeśli dokonałeś zmian w pliku, otwórz go za pomocą vii naciśnij R. Może pojawić się błąd E309 :

E309: Unable to read block 1 from .vimrc.swp

W takim przypadku usuń plik wymiany, jak wyjaśniono powyżej. Jeśli możesz otworzyć plik, wpisz:

:recover

Przejrzyj plik i zapisz go za pomocą:

:x

Następnie usuń plik wymiany, aby pozbyć się wiadomości.

jaume
źródło
0

Dzieje się tak, jeśli na przykład wyłączysz komputer, gdy vim nadal działa. Można bezpiecznie ręcznie usunąć plik .vimrc.swp lub nacisnąć „d” w vimie, gdy zostaniesz o to poproszony, po wklejeniu błędu.

kometonja
źródło