Иногда Vim падает и оставляет мне файл подкачки. Это потрясающе. Затем я открываю файл, который редактировал, и Vim спрашивает меня, хочу ли я восстановить. Да, спасибо. Когда это будет сделано, Вим говорит мне,
You may want to delete the .swp file now.
Почему, да, я делаю. Как мне это сделать? Я подумал, что он просто снова начнет использовать старый файл подкачки в качестве файла подкачки и очистит его при выходе, но это не так. Он создает новый, очищает его, и когда я снова открываю файл, он снова предлагает мне восстановиться после первого.
Конечно, я что-то упустил.
Ответы:
Немного более простой способ:
Из эмулятора терминала:
Затем выберите восстановить , и если вы хотите удалить своп вы пишете (сохранить) , а затем сделать это изнутри Vim:
... и выберите удалить на этот раз.
Я только что узнал об этом, и я думаю, что я буду делать это теперь. Тогда я не буду случайно перезаписывать рабочий файл, если восстановление оказалось поврежденным (хотя я никогда раньше не пробовал).
Есть также соответствующие советы по этому вопросу о переполнении стека (где я нашел этот совет).
источник
delete
выбора, есть только: [O] pen (E) dit (R) ecover (Q) uit (A) bort, что мне делать?(D)elete
выбора, смотрите:help swap-exists
; котировкаOn Unix this choice is only offered when the process that created the swap file does not appear to be running.
Т.е. , возможно , у вас есть еще один ВИМ запущенного процесса , который вызывает этот параметр , чтобы скрыть. Это также может объяснить, почему у вас естьswp
файл в первую очередь!Чтобы очистить все файлы vim Swap в каталоге:
Если вы уверены, что вам не нужны какие-либо файлы подкачки vim в дереве каталогов, и вы хотите избавиться от них, вы можете использовать следующую команду в каталоге, пока vim не запущен (даже в другом окне или даже в другом логине). сессия):
Некоторое вдохновение и мысли пришли из удаления ненужных .swp файлов в группах Google. Это удалит все файлы , чьи имена заканчиваются
.swk
,.swl
,.swm
,.swn
,.swo
, или.swp
в текущем дереве каталогов.Это может быть не то, что вы хотите, по нескольким причинам:
Как уже говорилось, он будет удалять все файлы , чьи имена заканчиваются
Оригинальный автор этого поста говорит,.swk
,.swl
,.swm
,.swn
,.swo
, или.swp
, и не только.swp
. Гэри Джонсон говорит ,С другой стороны, это может быть недостаточно. рубль подсказывает
который соответствует всем (строчным) трехбуквенным расширениям в диапазоне от
.saa
до.swp
. Он добавляет: «Будьте осторожны, хотя это более полное решение, оно удалит любые файлы изображений .svg и файлы .swf Adobe Flash. Вы можете изменить регулярное выражение , если вы работаете с этими файлами.»Это также соответствует.sav
,.snd
(звуковые данные).sql
,.src
,.srt
(SubRip видео формат субтитров), и многие другие широко распространенные расширения.Это может быть излишним. Как уже говорилось, он будет удалять все файлы , чьи имена заканчиваются
.swk
,.swl
,.swm
,.swn
,.swo
, или.swp
. Но, очевидно, файлы подкачки vim обычно являются «точечными» файлами. Если вы редактируетеhello.cpp
, файл подкачки может быть.hello.cpp.swp
. Как показано (но не объяснено) в ответе рубля , безопаснее удалять только файлы, имена которых начинаются с точки; например, систочник
Тип,
ls -a
который перечисляет ВСЕ файлы в каталогевведите
rm .whatever.your.swp
и нажмитеenterЭто так просто.
Любой файл, который отображается
.
перед, является скрытым файлом и обычно не виден.Помните, что изменения являются немедленными и постоянными, поэтому будьте осторожны.
источник
file.swp
или нетfile.swo
. Тогда я должен вернуться туда, где я был. Удар:e
- намного более простое решение.ls: cannot access +A: No such file or directory
Btw. некоторые плагины делают это автоматически: autoswap.vim
из описания:
источник
Нет, AFAIK, ты ничего не упустил.
Vim
продолжает сохранять файл подкачки в качестве резервной копии, пока вы явно не удалите его.Просто сохраните, выйдите и снова откройте тот же файл. Вам будет предложено (снова) с
Теперь просто нажмите
d
:)источник
Vim, как и большинство команд Unix, является простым и явным, а не предполагаемым и неявным.
Вы поправляетесь с (r). Если вам не нравится восстановление или восстановление повреждено, вы можете отказаться от него. Если вам это нравится, вы можете сохранить файл. Файл восстановления не удаляется для вас, потому что это не является явным и не будет правильным для 100% ситуаций.
Таким образом, вы (r) обнаруживаете (w) обряд и (q) выход, затем либо редактируете снова и выбираете (d) elete или «rm .myfile.js.swp» и редактируете снова. Это быстро и всегда, с точки зрения Vim, 100% правильное поведение.
источник
Эти файлы меня тоже раздражали, но я установил параметр в .vimrc -
set noswapfile
чтобы vim не создавал его, а вместо этого оставлял файлы в памяти.источник
Вот более полное регулярное выражение для очистки всех файлов подкачки vim на основе собственного файла Gitub для Gimub для Vim
Будьте осторожны, хотя это более полное решение, оно удалит любые файлы изображений .svg и файлы .swf Adobe Flash. Вы можете изменить регулярное выражение, если вы работаете с этими файлами.
источник
Вот фрагмент для добавления
.vimrc
. Он удаляет все файлы подкачки, связанные с текущим файловым буфером, и сбрасывает расширение подкачки.Однажды столкнувшись с затруднительным положением, можно выполнить.
:DeleteFileSwaps
Это замечательно, если в сочетании с:windo
или:tabdo
команды.Дополнительная информация : файл может иметь более 1 файла подкачки. Причина в том, что файл подкачки с расширением по-
.swp
прежнему существует иvim
будет продолжать создавать новые из-за этого. Чтобы узнать,.swp
существует ли ::sw
чтобы получить текущий файл подкачки..swp
.Приведенный выше фрагмент кода повторяет тот же процесс, но удаляет все файлы подкачки.
Надеюсь это поможет.
источник
Из руководства
:h swap
:источник
.swp
файл,:sw
команда, вероятно, будет выдавать вам имя.swo
файла - это не то, что вы хотите удалить.если вас спросят, нажмите, Dчтобы удалить файл подкачки текущего файла.
если нет, то вы должны сделать это вручную.
один из альтернативных способов сделать это:
найти / найти файл:
а затем удалите этот файл:
источник
Вы можете использовать,
Пример:
источник
<ext>
здесь избыточен, так как имя файла по крайней мере в Linux включает ноль или более расширений.