Я создал плагин под названием «noswapsuck», который включает файл подкачки только тогда, когда буфер содержит несохраненные изменения. После сохранения изменений файл подкачки очищается. Следовательно, файлы подкачки, содержащие то же содержимое, что и файл на диске, будут удалены.
Получите это здесь: noswapsuck.vim
Это работало хорошо для меня, но я никогда не публиковал его раньше, поэтому я хотел бы получить обратную связь.
Преимущества:
- Единственными файлами подкачки, которые остаются на вашем диске, будут важные файлы подкачки, которые фактически отличаются от файла!
Недостатки:
Если в буфере есть файл подкачки, он не будет обнаружен при первом открытии файла. Он будет обнаружен только при включенном swapfile
, когда вы начинаете редактировать буфер. Это досадно поздно и вас прервет. (решено: теперь мы проверяем уже существующий файл подкачки при открытии буфера, временно включив опцию swapfile
.)
Если вы работаете в среде, в которой вы хотите свести к минимуму записи на диск (например, с низким энергопотреблением, или файлы, подключенные по сети, или редактирование огромного файла), тогда не стоит продолжать удалять и повторно создание файла подкачки при каждом сохранении и редактировании. В таких ситуациях вы можете сделать:
:let g:NoSwapSuck_CloseSwapfileOnWrite = 0
, который сохранит файл подкачки после записи, но все равно удалит его, когда буфер потеряет фокус.
Кстати, у меня есть еще один маленький плагин :DiffAgainstFileOnDisk
, который может быть очень полезен после нажатия (r)ecover
, чтобы проверить, является ли восстановленный вами буфер более новым или более старым, чем существующий файл, или идентичным к этому.