Co to jest plik .un ~ lub dlaczego Vim w terminalu tworzy plik .un ~?

94

Zauważyłem, że mam kilka plików z kropkami, które kończą się na .un~, na przykład mam .vividchalk.vim.un~, ale nie jestem pewien, skąd się to wzięło. Wygląda na to, że są tworzone, gdy używam Vima w terminalu. Co to za pliki? Czy mogą same usunąć się po zamknięciu pliku, który edytuję?

kaplan
źródło

Odpowiedzi:

137

Kiedy edytujesz i zapisujesz pliki, Vim tworzy plik o tej samej nazwie co oryginalny plik i un~rozszerzeniem na końcu.

Vim 7.3 zawiera nową funkcję trwałego cofania, co oznacza, że ​​informacje o cofnięciu nie zostaną utracone po wyjściu z Vima i zostaną zapisane w pliku kończącym się na .un~. Ustawiłeś undofileopcję, więc Vim tworzy plik cofania podczas zapisywania oryginalnego pliku. Możesz powstrzymać Vima przed tworzeniem pliku kopii zapasowej, odznaczając opcję:

:set noundofile

Zauważ, że domyślnie ta opcja jest wyłączona. Jawnie włączyłeś undofileopcję w jednym z plików inicjalizacyjnych. Jeśli chcesz, aby twoje undofile były przechowywane tylko w określonym katalogu, możesz wskazać undodiropcję do katalogu, który będzie zawierał wszystkie twoje zagregowane undofiles.

Źródło: http://vimhelp.appspot.com/vim_faq.txt.html#faq-7.2

TheEwook
źródło
4
Dzięki! Jestem nowy w Vimie i próbuję zrozumieć i skonfigurować bez kultywowania cargo. Teraz widzę, że to ustawienie pochodzi vim-sensible. Czytanie ReadMe na vim-sensible jest bardzo pomocne. Dowiedziałem się (z screencasta peepcode), że mogę to zrobić :verbose set undofile?i zobaczę, gdzie jest ustawiona ta opcja. Myślę, że mam do tego prawo.
kaplan
1
Mam Vima 7.3 i trwałe cofanie nie działa dla mnie (potrzebuję set undofiletrwałego cofania). Czy inne ustawienia kolidują z nową funkcją, np. nobackupLub noswapfile?
Dennis
Myślę, że kremowy instalator non-cream-vim również ustawia to domyślnie włączone.
Josiah Yoder
1
O stary!! teraz muszę pamiętać: set nobackup set noswapfile set noundofilew każdym _vimrc, jeśli nie chcę śladów szczeniąt ?? !! Można by pomyśleć, że JEDEN z nich może być domyślnie wyłączony lub coś ...
ebyrob
12
Wygląda na to, że vim 8 (co najmniej 8.0.427) ma tę funkcję domyślnie włączoną. YMMV oczywiście ...
Chuck Wolber
3

Zajęło mi trochę czasu, zanim dowiedziałem się, gdzie właściwie umieścić :set noundofilepolecenie. Jestem nowy i po prostu odpowiem jak sobie zrobiłem nie robię kopii zapasowych.

  1. Otwórz vim.
  2. Wpisz w trybie poleceń :e $HOME/.vimrc
  3. pisać :set noundofile
  4. Zapisz i wyjdź: :wq
Spiros Skouras
źródło
Działa w moim przypadku użycia, który jest trochę inny: używanie Vima wewnątrz ConEmu w systemie Windows. Dzięki!
Mário Meyrelles
Domyślnie mam undofiles w instalatorze systemu Windows vim. Twój przewodnik mi pomógł, dzięki!
Cardin
0

Innym możliwym sposobem uniknięcia tworzenia plików cofania przez vima wszędzie jest ustawienie undodir na jakiś istniejący katalog, np

if has('persistent_undo')         "check if your vim version supports
  set undodir=$HOME/.vim/undo     "directory where the undo files will be stored
  set undofile                    "turn on the feature
endif

złapany stąd

Brad Parks
źródło