Kiedy edytuję pliki, Vim ma tendencję do tworzenia plików o nazwie , co wydaje mi się denerwujące. Z , widzę, że opcja pomija tworzenie plików wymiany..filename.swp
vim -h
-n
Czy istnieje dyrektywa vimrc, za pomocą której mogę domyślnie wyłączać pliki wymiany?
Jaki jest cel zamiany plików i jakiej funkcji nie byłoby możliwe, pomijając je?
vimrc
crash-recovery
swap-file
200_sukces
źródło
źródło
noswapfile
zgodnie z sugestią poniżej. W końcu jednak poddałem się i wyłączyłem, ponieważ najwyraźniej korzyści przeważają nad irytacjami - buuuuuut, tak naprawdę nie pamiętam, co przekonało mnie do przywrócenia użycia pliku wymiany. Prawdopodobnie mój komputer się zawiesił i nie mogłem przywrócić niektórych utraconych plików, co byłoby trywialne przy włączonych plikach wymiany.Odpowiedzi:
Powody wymiany plików
Pliki wymiany przechowują zmiany wprowadzone w buforze. Jeśli Vim lub komputer ulegnie awarii, pozwolą ci odzyskać te zmiany.
Pliki wymiany umożliwiają także uniknięcie edytowania tego samego pliku przez wiele instancji Vima. Może to być przydatne w systemach z wieloma użytkownikami lub po prostu wiedzieć, czy inny Vim już edytuje plik.
Wyłączanie plików wymiany
Jeśli chcesz całkowicie wyłączyć tworzenie plików wymiany (czego nie poleciłbym), możesz dodać
set noswapfile
do swojego.vimrc
. To ustawia globalną wartość opcji. Następnie możesz zastąpić to dla określonych buforów, używając:setlocal swapfile
podczas uruchamiania Vima.Porządkowanie plików wymiany
Jeśli Twój problem dotyczy bardziej dodatkowych plików rozmieszczonych wokół systemu plików, możesz zebrać wszystkie pliki wymiany w jednym miejscu. Na przykład utwórz
~/.vim/tmp
katalog, a następnie dodajdo twojego
.vimrc
.'directory'
Opcja zawiera listę katalogów, które Vim użyje, aby spróbować zapisać plik wymiany.^=
Składnia:set
poprzedza nazwę katalogu na czele listy, więc Vim sprawdzi najpierw, że katalog.Na
//
końcu nazwy katalogu mówi Vimowi, aby użył bezwzględnej ścieżki do pliku, aby utworzyć plik wymiany, aby nie było kolizji między plikami o tej samej nazwie z różnych katalogów.Zauważ, że zapobiegnie to zauważeniu przez Vima, gdy wielu użytkowników próbuje edytować ten sam plik. Ponieważ plik wymiany nie znajduje się w tym samym katalogu co plik oryginalny, Vim drugiego użytkownika nie będzie wiedział o pliku wymiany i nie ostrzeże go, że jest już edytowany.
źródło
vim-auto-save
. Czy to nie umniejsza potrzeby wymiany plików?vim temp.txt --some-command-that-disable-swap
? Mój przypadek użycia polega na tym, że jakiś obserwator będzie obserwował każdą zmianę w katalogu, więc dopiero wtedy chciałbym wyłączyć swap, aby zapobiec kolizji.