Почему Vim сохраняет файлы с расширением?

Я обнаружил, что при использовании Vim на Windows Vim сохраняет файл, файл .ext.swp, который удаляется при закрытии окна Vim и файла .ext~.

Я предполагаю, что файл .ext.swp является резервной копией сеанса в случае сбоя Vim. Какова цель файла .ext~? Это постоянный файл резервной копии? Это раздражает, так как я хотел бы скопировать все файлы, над которыми я работаю, на мой хост без этих дубликатов. Как я могу отключить это или, если он там по уважительной причине, скрыть файлы?

Ответ 1

Файл *.ext~ представляет собой файл резервной копии, содержащий файл, который был до его редактирования.

Файл *.ext.swp - это файл подкачки, который служит в качестве файла блокировки и содержит историю отмены/повтора, а также любые другие внутренние запросы Vim. В случае сбоя вы можете повторно открыть файл, и Vim восстановит его предыдущее состояние из файла подкачки (что я считаю полезным, поэтому я не выключаю его).

Чтобы отключить автоматическое создание файлов резервных копий, используйте (в вашем vimrc):

set nobackup
set nowritebackup

Где nowritebackup изменяет поведение "Vim" по умолчанию "save", которое:

  • записать буфер в новый файл
  • удалить исходный файл
  • переименуйте новый файл

и заставляет Vim записывать буфер в исходный файл (что может привести к его уничтожению в случае ошибки ввода-вывода). Но вы предотвращаете "прыгание файлов" на рабочем столе Windows с ним, что является основной причиной для меня иметь nowritebackup.

Ответ 2

Я думаю, что лучшее решение - поместить эти строки в ваш файл vimrc.

set backupdir=~/vimtmp//,.
set directory=~/vimtmp//,.

Первая строка для файлов резервных копий, вторая строка для файлов подкачки. Двойная косая черта в конце гарантирует отсутствие конфликта в случае двух файлов с одинаковыми именами, см. Комментарии (на момент этого редактирования этот параметр учитывался только для файлов подкачки, но не для файлов резервных копий). ,. разрешить vim использовать текущий каталог, если прежний не существует.

Вы должны создать каталог в вашем домашнем каталоге с именем vimtmp, чтобы это работало. Кроме того, убедитесь, что резервные копии включены в вашей конфигурации (добавьте set backup если нет).

Таким образом, вы получаете выгоду от обоих миров, вам не нужно видеть файлы, но если что-то не работает, вы можете получить файл резервной копии из vimtmp. Не забывайте вычищать каталог время от времени.

Ответ 3

Чтобы отключить эти файлы, просто добавьте эти строки в .vimrc(файл конфигурации vim в ОС на основе UNIX):

set nobackup       #no backup files
set nowritebackup  #only in case you don't want a backup file while editing
set noswapfile     #no swap files

Ответ 4

:set nobackup 

отключит резервные копии. Вы также можете установить backupdir, если вам все же нужны эти файлы резервного копирования, но в центральной папке. Таким образом, ваш рабочий каталог не усеян ~ файлами.

Дополнительную информацию о резервных копиях вы найдете в разделе : он резервное копирование.

Ответ 5

И вы также можете установить другое расширение для резервного копирования и где сохранить эту резервную копию (я предпочитаю ~/.vimbackups в Linux). Раньше я использовал резервные копии с версией:

au BufWritePre * let &bex = '-' . strftime("%Y%m%d-%H%M%S") . '.vimbackup'

Здесь задается расширение динамической резервной копии (ORIGINALFILENAME-YYYYMMDD-HHMMSS.vimbackup).

Ответ 6

Поместите эту строку в ваш vimrc:

set nobk nowb noswf noudf " nobackup nowritebackup noswapfile noundofile


В это будет:

C:\Program Files (x86)\vim\_vimrc

файл для общесистемной конфигурации vim для всех пользователей.

Установка последнего noundofile важна в Windows, чтобы предотвратить создание файлов *~ tilda после редактирования.


Я бы хотел, чтобы Vim включил эту строку по умолчанию. Никто не любит уродливые каталоги.

Позвольте пользователю выбрать, если и как он хочет сначала включить расширенные функции резервного копирования/отмены файлов.

Это самая раздражающая часть Vim.

Следующим шагом может быть настройка:

set noeb vb t_vb= " errorbells visualbell

отключить звуковой сигнал также в :-)

Ответ 7

Вы правы, что файл .swp используется vim для блокировки и как файл восстановления.

Попробуйте добавить set nobackup в свой vimrc, если вы не хотите этих файлов. См. Vim docs для различных параметров, связанных с резервными копиями, если вы хотите весь совок или хотите иметь .bak файлы вместо этого...

Ответ 8

Единственная опция, которая работала для меня, заключалась в том, чтобы поместить эту строку в файл ~/.vimrc

установить noundofile

Другие параметры, относящиеся к файлам резервного копирования, не препятствовали созданию файлов temp, заканчивающихся на ~ (tilde)

Ответ 9

Мне пришлось добавить set noundofile в ~ _gvimrc

Каталог "~" можно определить, изменив каталог с помощью команды cd ~