Чи є плагін vim, який реалізує функцію гарячого виходу з піднесеного тексту


11

Гарячий вихід - одна з вбивчих особливостей редактора Sublime Text. Це дозволяє закрити редактор в будь-який момент часу, не турбуючись про зміни у відкритих файлах - він просто закривається без будь-якого питання. Після повторного запуску ST всі відкриті та відредаговані файли будуть у тому ж стані, що були до закриття

Цікаво, чи є спосіб зробити те саме у vim?


: xa вийти з усіх (зберегти всі зміни та закрити Vim)
Сім

Це записує файли, але нічого іншого не зберігає. Я думаю, що ОП хоче щось, що обидва зберігає файли, не записуючи їх, і зберігає стан будь-яких відкритих вкладок або буферів
EvergreenTree

Так, я зрозумів це пізніше з його коментарів.
Сім

Відповіді:


6

Vim може це зробити, хоча це може бути трохи незграбним і здійснити певну настройку.

Романн змушує тебе розлучитисяsession . Пропущені біти - це файли swap :preserve, та &прапор для cpoptions.

Файли обміну призначені для відновлення, якщо Vim або ваша система виходить з ладу. Вони дозволяють відновити будь-які незбережені зміни (з деякими обмеженнями, див. :he swap-file). Однак, коли Vim закінчується нормально, він видаляє будь-які файли підкачки, якими він користувався, навіть якщо в буфері були незбережені зміни.

Ось де :preserveі cpoptions«s &приходять. :preserveСили Vim писати все буфери їх файли підкачки негайно (на відміну від стандарту через 4 секунди чи 200 символів, або що ваші варіанти встановили його в). Дія :set cpoptions+=&вказує Vim не видаляти файли, що зберігаються, збережені :preserveпри нормальному виході.

На жаль, Vim автоматично не очищає файли підкачки під час відновлення з них, тому незабаром ви можете створити такий каталог:

.foo.txt.swn
.foo.txt.swo
.foo.txt.swp
foo.txt

Ви можете видалити старіші вручну, але Vim запропонує відновити лише автоматично, якщо є *.swpфайл, куди він би розмістив свій новий файл swap. :recoverКоманда змусить Vim шукати файли підкачки для відновлення.

Використовуючи автокоманди, ви можете автоматизувати збереження (можливо, з QuitPreподією) та відновлення (ймовірно, з BufReadабо BufReadPost). Recover.vim - плагін, який може працювати як зручніша альтернатива управління відновленням. Схоже, він також обробляє очищення файлів підкачки. Я не впевнений, як він оброблятиме каталог з файлом, .swoале без нього .swp. Вам може знадобитися використовувати :recoverдля цього випадку.

vim-obsession - ще один плагін, який стверджує, що значно полегшує обробку сеансів.


1

Так. Це називається "сесія", і про нього ви можете прочитати все:

:help session

1
Мені відомо про сеанси. Але, схоже, це не те саме - він зберігає всі відкриті буфери та вкладки (і налаштування), але якщо у вас є деякі зміни в одному з буферів, ви повинні записати їх на диск перед виходом. У піднесеному тексті вам не потрібно зберігати відкритий файл при виході - sublime зберігає всі зміни до нього в окремому місці та відновлює їх при повторному відкритті. Тож оригінальний файл недоторканий на диску, але зміни теж не втрачаються
LazyS

Так, це була б головна відмінність. Немає думки, чи можна її досягти будь-яким способом, не вдаючись до tmux / screen / detach.
romainl
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.