Немного более простой способ

Немного более простой способ

Иногда 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

из описания:

  1. Файл уже открыт в другом сеансе Vim в каком-либо другом окне?
  2. Если это так, переключитесь в окно, в котором мы редактируем этот файл.
  3. В противном случае, если файл подкачки старше самого файла, просто избавьтесь от него.
  4. Otherwise, open file read-only so we can have a look at it and may save it.

Связанный контент