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

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

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

9 ответов

Решение

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

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

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

set nobackup
set nowritebackup

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

  1. записать буфер в новый файл
  2. удалить оригинальный файл
  3. переименовать новый файл

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

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

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

Вы должны создать каталог в вашем домашнем каталоге с именем vimtmp, чтобы это работало.

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

Чтобы отключить эти файлы, просто добавьте эти строки в.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

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

set nobk nowb noswf noudf " nobackup nowritebackup noswapfile noundofile

В Windows это будет C:\Program Files (x86)\vim\_vimrc файл для общесистемной конфигурации vim для всех пользователей.

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


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

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

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

Следующим шагом является настройка set noeb vb t_vb= отключить звуковой сигнал:P

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

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

Это устанавливает расширение динамического резервного копирования (ORIGINALFILENAME-YYYYMMDD-HHMMSS.vimbackup).

:set nobackup 

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

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

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

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

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

установить noundofile

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

Я должен был добавить set noundofile в ~_gvimrc

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

Другие вопросы по тегам