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