Яка мета обміну файлами?


72

Коли я редагую файли, Vim прагне створити файли з ім'ям , які мені здаються роздратованими. Звідси я бачу, що опція пригнічує створення файлів swap..filename.swpvim -h-n

Чи існує директива vimrc, яку я можу використовувати для відключення файлів swap за замовчуванням?

Яка мета обміну файлами та яку функціональність я б не втрачав, придушуючи їх?


FWIW, я вважаю, що файли свопу також дратують, і деякий час я намагався використовувати, noswapfileяк пропонується нижче. Я врешті-решт поступився і виключив це, оскільки, очевидно, переваги переважають роздратування - але я насправді не пам'ятаю, що мене переконало відновити використання файлів підкачки. Можливо, мій комп'ютер вийшов з ладу, і я не зміг відновити деякі втрачені файли, які були б тривіальні з увімкненими файлами swap.
Кайл Странд

Відповіді:


88

Причини розміщення файлів

Обмінні файли зберігають зміни, які ви внесли в буфер. Якщо Vim або ваш комп'ютер виходить з ладу, вони дозволяють відновити ці зміни.

Файли swap також дозволяють уникнути редагування одного і того ж файлу кількома екземплярами Vim. Це може бути корисно для багатокористувацьких систем або просто знати, чи є у вас інший Vim, який вже редагує файл.

Вимкнення файлів підкачки

Якщо ви хочете повністю відключити створення файлів свопу (що я б не рекомендував), тоді ви можете додати їх set noswapfileдо своїх .vimrc. Це встановлює глобальне значення опції. Потім ви можете змінити це для конкретних буферів, використовуючи :setlocal swapfileпід час роботи Vim.

Організація файлів підкачки

Якщо ваша проблема стосується додаткових файлів, розповсюджених у вашій файловій системі, тоді ви зможете об'єднати всі файли підкачки в одному місці. Наприклад, створити ~/.vim/tmpкаталог і потім додати

set directory^=$HOME/.vim/tmp//

до вашого .vimrc. 'directory'Опція містить список каталогів , в яких Vim буде використовувати , щоб спробувати зберегти файл підкачки.

^=Синтаксис :setпрепендов ім'я каталогу в голову списку, так що Вім буде першим перевірити цей каталог.

В //кінці імені каталогу вказується Vim використовувати абсолютний шлях до файлу для створення файлу swap, щоб не було зіткнень між однойменними файлами з різних каталогів.

Зауважте, що це не дозволить помітити Vim, коли кілька користувачів намагаються редагувати один і той же файл. Оскільки файл swap не в тому ж каталозі, що і вихідний файл, Vim іншого користувача не дізнається про файл swap і не попередить їх про те, що він вже редагується.


4
Яка перевага файлів swap над persistent-скасувати тепер, коли він був у vim деякий час?
alpha_989

Я використовую vim-auto-save. Чи це не пригнічує потреби у файлах підкачки?
Кевін

@Kevin Це залежить. Якщо плагін викликає збереження у кожному сценарії, коли Vim виписав би свопфайл, ймовірно. Інакше все ще залишаться періоди, коли буфер не зберігається і свопфайл може допомогти.
Jamessan

@ alpha_989 Вони доповнюють один одного. Свопфайл дозволяє відновити збережені зміни. Файл стійкої відміни дозволяє пересувати історію скасування скасування через сеанси Vim, але файл записується лише при збереженні.
Jamessan

Будь-який метод встановлення vim без swap лише для одного примірника? наприклад vim temp.txt --some-command-that-disable-swap? Мій випадок використання - це те, що спостерігач буде постійно спостерігати за будь-якими змінами в каталозі, тому лише тоді я хотів би відключити своп для запобігання зіткнення.
Ng Sek Лонг
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.