Как мне работать с файловой системой подкачки vim?

при использовании vim в ubuntu я случайно нажал ctrl-z, который приостановил свою сессию vim. Я редактировал файл (я назову его test), который не был сохранен.

когда я снова открыл файл в vim, Я получил ошибку файла подкачки:

E325: ATTENTION
Found a swap file by the name ".test.swp"


Swap file ".test.swp" already exists!

по данным найден файл подкачки по имени вопрос, у меня есть два варианта:

  1. найдите сеанс и завершите его (предпочтительно).
  2. удалить .swp файл (если вы уверены, что другой сеанс git ушел).

как бы я сделал любую из этих вещей? Если я выступлю rm test.swp он не видит файл:

rm: cannot remove `test.swp': No such file or directory

что я делаю неправильно при удалении файла подкачки и как я могу закончить сеанс?


EDIT: я забыл период в test.swp Таким образом, правильный способ удалить swp-файл -rm .test.swp.

мой оставшийся вопрос заключается в том, как продолжить/закончить приостановлено заседание vim.

2 ответов


Это не связано только с Ubuntu, так как происходит базовый механизм почти каждая ОС Unix. При нажатии ^Z вы приостановили (не завершили) текущий сеанс vim. Энергия сеанс все еще там и ждет сигнала, чтобы снова вывести его на передний план.

активировать сессии: Если vim был запущен непосредственно из командной строки -- используйте команду "fg" (которая для "переднего плана") и vim появится снова. Это работает на всех KSH / bourne-подобных оболочках. Для t / csh я не знаю. Это работает только тогда, когда команда "fg" была дана на консоли того же терминального сеанса, с которого был запущен vim (который является "управляющим терминалом", связанным с сеансом vim).

Если vim был запущен (в основном под именем gvim)из меню windowmanager, вам здесь немного не повезло, так как (g) vim отсоединяется от своего терминала управления.

ваши варианты для восстановления: Используйте "fg", если условие действительно, описанное выше. Этот это самый чистый способ.

если сеанс vim (g)отсоединен от терминала управления, который можно проверить, выполнив "PS-ef | grep vim". Если столбец для TTY (см. заголовок вывода) показывает а "?"больше нет управляющего терминала, я бы рекомендовал отправить процесс СИГУБ (см. manpage для commmand "kill"/" killall"), а затем SIGKILL, если он все еще там. Убийство vim (или любой другой задачи), вероятно, приведет к несогласованным данным, хотя, потому что не было команда" сохранить " для vim, прежде чем она будет убита.

после этого запустите новый vim с тем же файлом, сначала выполните "восстановление" (как предложено vim, который видит соответствующий swp-файл) , сохраните файл, завершите vim и запустите его снова с этим файлом и выполните "удалить файл подкачки". Это самый безопасный способ после убийства Вима.

чтобы избежать случайного размещения vim в фоновом режиме, если это не требуется, сопоставьте ^Z с другим, больше "сложные" keysequence, которые трудно нажать accidentically. Вы можете деактивировать ^Z команда, добавив следующую строку к вашей .vimrc:

map <C-z> ;

Addition: ваша RM-команда пропускает точку перед .тест.swp, заставляющий rm не найти файл...или удаление другого файла с именем test.ППВ вместо ".тест.swp". Удалив swp-файлы через vim, вы обязательно удалите правильный файл. Swp-файлы всегда начинаются с точки (скрытого файла) в UNIX-подобных системах.


файл будет " .test.swp ", а не " test.swp " Так что вы захотите:

rm .test.swp