Иногда Vim зависает и оставляет мне файл подкачки. Это потрясающе. Затем я открываю файл, который я редактировал, и Vim спрашивает меня, хочу ли я восстановить его. Я хочу, спасибо. Когда все сделано, Vim говорит мне:
You may want to delete the .swp file now.
Да, я так делаю. Как мне это сделать? Я думал, что он просто снова начнет использовать старый файл подкачки как файл подкачки и очистит его, когда я выйду, но это не так. Он создает новый, очищает тот, и когда я снова открываю файл, он снова предлагает мне восстановиться из первого.
Я наверняка что-то упускаю.
решение1
Немного более простой способ
Из эмулятора терминала:
$ vim filename
Затем внутри vim выберитевосстанавливаться, и если вы хотите удалить своп, выписать(сохранить) и затем вызвать эту команду:
:e // no argument needed. It assumes the current buffer.
...и выбирайтеудалитьна этот раз.
Преимущество такого подхода в том, что он не будет автоматически перезаписывать рабочий файл, если восстановленные данные окажутся поврежденными (хотя, признаюсь, у меня такого никогда не случалось).
Также есть соответствующие советыпо этому вопросуна Stack Overflow (где я нашел этот совет).
решение2
Чтобы очистить ВСЕ файлы подкачки vim в каталоге:
Если вы уверены, что вам не нужны файлы подкачки vim в дереве каталогов и вы хотите от них избавиться, вы можете использовать следующую команду в каталоге, пока vim работаетнетзапущено (даже не в другом окне и даже не в другом сеансе входа в систему):
find . -type f -name "*.sw[klmnop]" -delete
Некоторые идеи и идеи пришли изУдаление ненужных .swp файлов
в Google Groups. Это удалит все файлы, имена которых заканчиваются на .swk
, .swl
, .swm
, .swn
, .swo
, или .swp
в текущем дереве каталогов.
Это может быть не то, что вам нужно, по нескольким причинам:
- Как уже было сказано, поиск выполняется в текущем каталоге.дерево ; т.е. текущий каталог и все подкаталоги, рекурсивно. Это выходит за рамки того, что требуется в вопросе, и может считаться излишеством.
Как уже было сказано, будут удалены все файлы, имена которых заканчиваются на
.swk
,.swl
,.swm
,.swn
,.swo
или.swp
, а не только на.swp
. Гэри Джонсон говорит,Кроме того, не все файлы подкачки заканчиваются на .swp. Если Vim нужно создать файл подкачки, а файл, заканчивающийся на .swp, уже существует, Vim будет использовать расширение .swo для нового файла и .swn после него. Я думаю, что он просто продолжается в обратном порядке по алфавиту. Поэтому использование чего-то вроде
Первоначальный авторэтотпост говорит,\*.sw[nop]
или даже
\*.sw?
будет более тщательным.
«klmnop» может быть излишним, но обычно это гарантирует, что я получу их все.
С другой стороны, это может быть неэффективно. рубль предполагает
find . -type f \( -name ".*.s[a-v][a-z]" -o -name ".*.sw[a-p]" \) -delete
что соответствует всем (строчным) трехбуквенным расширениям от
.saa
до.swp
. Он добавляет: «Однако будьте осторожны, хотя это более полное решение, оно уберет все файлы изображений .svg и файлы Adobe Flash .swf. Возможно, вам захочется изменить регулярное выражение, если вы работаете с этими файлами». Он также соответствует.sav
,.snd
(звуковые данные),.sql
,.src
,.srt
(формат субтитров видео SubRip) и многим другим распространенным расширениям.Это может быть излишним. Как уже говорилось, он удалит все файлы, чьи имена заканчиваются на
.swk
,.swl
,.swm
,.swn
,.swo
, или.swp
. Но, по-видимому, файлы подкачки vim обычно являются файлами с точкой. Если вы редактируетеhello.cpp
, файл подкачки может быть.hello.cpp.swp
. Как показано (но не объяснено) вответ рубля, безопаснее удалять только файлы, имена которых начинаются с точки, например,find . -type f -name ".*.sw[klmnop]" -delete
решение3
Введите ls -a
, который выводит список ВСЕХ файлов в каталоге
введите rm .whatever.your.swp
и нажмитеenter
Это так просто.
Любой файл, который отображается со значком .
на переднем плане, является скрытым и обычно не отображается.
Помните, что изменения происходят мгновенно и навсегда, поэтому будьте осторожны.
решение4
Кстати, некоторые плагины делают это автоматически:автозамена.vim
из описания:
- Файл уже открыт в другом сеансе Vim в каком-либо другом окне?
- Если это так, переключитесь в окно, в котором мы редактируем этот файл.
- В противном случае, если файл подкачки старше самого файла, просто избавьтесь от него.
- Otherwise, open file read-only so we can have a look at it and may save it.