Что такое файл .un ~ или почему Vim в Терминале создает файл .un ~?

94

Я заметил, что у меня есть некоторые точечные файлы, которые заканчиваются на .un~, например, у меня есть .vividchalk.vim.un~, но я не уверен, откуда они. Похоже, они создаются, когда я использую Vim в Терминале. Что это за файлы? Могут ли они удалить себя, когда я закрою файл, который редактирую?

Каплан
источник

Ответы:

137

Когда вы редактируете и сохраняете файлы, Vim создает файл с тем же именем, что и исходный файл, и un~расширением в конце.

Vim 7.3 содержит новую функцию постоянной отмены, то есть информация об отмене не будет потеряна при выходе из Vim и будет сохранена в файле, который заканчивается на .un~. Вы установили эту undofileопцию, поэтому Vim создает файл отмены при сохранении исходного файла. Вы можете запретить Vim создавать файл резервной копии, сняв флажок:

:set noundofile

Обратите внимание, что по умолчанию этот параметр отключен. Вы явно включили эту undofileопцию в одном из файлов инициализации. Если вы хотите, чтобы ваши отмененные файлы хранились только в определенном каталоге, вы можете указать undodirопцию на каталог, который будет содержать все ваши агрегированные аннулированные файлы.

Источник: http://vimhelp.appspot.com/vim_faq.txt.html#faq-7.2

Эвук
источник
4
Благодарность! Я новичок в Vim и пытаюсь понять и настроить без груза. Теперь я вижу, что это сеттинг vim-sensible. Чтение ReadMe на vim-sensible очень полезно. И я узнал (из скринкаста Peepcode), что я могу это сделать, :verbose set undofile?и посмотрю, где установлен этот параметр. Думаю, я имею на это право.
kaplan
1
У меня Vim 7.3, и у меня не работает постоянная отмена (мне нужно set undofileдобиться постоянной отмены). Другие настройки мешают работе новой функции, например nobackupили noswapfile?
Деннис
Я думаю, что cream non-cream-vim-installer также устанавливает это по умолчанию.
Джозайя Йодер
1
О чувак!! теперь я должен помнить: set nobackup set noswapfile set noundofileв каждом _vimrc, если я не хочу щенячьих следов ?? !! Можно подумать, что ОДИН из них может отключиться по умолчанию или что-то в этом роде ...
ebyrob 05
12
Похоже, что в vim 8 (по крайней мере, 8.0.427) эта функция включена по умолчанию. YMMV, конечно ...
Чак Уолбер
3

Мне потребовалось время, чтобы найти, где на самом деле поместить :set noundofileкоманду. Я новичок, и я просто отвечу, что сделал так, чтобы резервные копии не делались.

  1. Откройте vim.
  2. Введите в командном режиме :e $HOME/.vimrc
  3. Напишите :set noundofile
  4. Сохранить и выйти: :wq
Спирос Скурас
источник
Это работает для моего варианта использования, который немного отличается: использование Vim внутри ConEmu в Windows. Благодарность!
Марио Мейрельес,
По умолчанию в установщике Windows vim у меня есть аннулированные файлы. Ваш гид мне помог, спасибо!
Кардин
0

Другой возможный способ избежать создания vim файлов отмены повсюду - установить undodir в некоторый существующий каталог, например

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

зацепился отсюда

Брэд Паркс
источник