Как запретить vim создавать (и оставлять) временные файлы? - PullRequest
152 голосов
/ 13 апреля 2009

Почему vim создает <filename>~ файлы? Есть ли способ отключить это?

Если это для резервного копирования (или чего-то еще), я использую для этого git.

Кроме того, эти .<filename.with.path.hints>.swp файлы тоже.

Как мне сказать vim не создавать их или, по крайней мере, очищать после себя?

EDIT

упс, дубликаты:

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

Я принял оттуда ответ rogeriopvl оттуда.

дословная копия:

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

Ответы [ 6 ]

66 голосов
/ 15 апреля 2009

Я настоятельно рекомендую продолжать работу с файлами подкачки (в случае сбоя Vim).

Вы можете установить каталог, в котором хранятся файлы подкачки, чтобы они не загромождали ваши обычные каталоги:

set swapfile
set dir=~/tmp

Смотрите также

:help swap-file
55 голосов
/ 13 апреля 2009

Поместите это в файл конфигурации .vimrc.

set nobackup
29 голосов
/ 16 июня 2011

; Для пользователей Windows вернуться во временный каталог

set backup
set backupdir=C:\WINDOWS\Temp
set backupskip=C:\WINDOWS\Temp\*
set directory=C:\WINDOWS\Temp
set writebackup
10 голосов
/ 24 ноября 2014

Я создал плагин под названием «noswapsuck», который включает файл подкачки только тогда, когда буфер содержит несохраненные изменения. После сохранения изменений файл подкачки очищается. Следовательно, файлы подкачки, содержащие то же содержимое, что и файл на диске, будут удалены.

Получите это здесь: noswapsuck.vim

Это работало хорошо для меня, но я никогда не публиковал его раньше, поэтому я хотел бы получить обратную связь.

Преимущества:

  • Единственными файлами подкачки, которые остаются на вашем диске, будут важные файлы подкачки, которые фактически отличаются от файла!

Недостатки:

  • Если в буфере есть файл подкачки, он не будет обнаружен при первом открытии файла. Он будет обнаружен только при включенном swapfile, когда вы начинаете редактировать буфер. Это досадно поздно и вас прервет. (решено: теперь мы проверяем уже существующий файл подкачки при открытии буфера, временно включив опцию swapfile.)

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

    :let g:NoSwapSuck_CloseSwapfileOnWrite = 0
    

    , который сохранит файл подкачки после записи, но все равно удалит его, когда буфер потеряет фокус.

Кстати, у меня есть еще один маленький плагин :DiffAgainstFileOnDisk, который может быть очень полезен после нажатия (r)ecover, чтобы проверить, является ли восстановленный вами буфер более новым или более старым, чем существующий файл, или идентичным к этому.

5 голосов
/ 07 апреля 2017

В Windows добавьте следующие строки в _vimrc

" store backup, undo, and swap files in temp directory
set directory=$HOME/temp//
set backupdir=$HOME/temp//
set undodir=$HOME/temp//
4 голосов
/ 17 августа 2017

Этот ответ относится к использованию gVim в Windows 10. Я не могу гарантировать такие же результаты для других операционных систем.

Добавить:

set nobackup
set noswapfile
set noundofile

В ваш файл _vimrc.

Примечание. Это прямой ответ на вопрос (для Windows 10), и, вероятно, это не самое безопасное (см. Другие ответы), но в моем случае это самое быстрое решение.

...