Почему 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 по умолчанию при сохранении, а именно:
- записать буфер в новый файл
- удалить оригинальный файл
- переименовать новый файл
и заставляет 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 ~
команда