9 ответов:
The
:bufdoкоманда позволяет выполнить команду на всех буферах. В этом случае, вы хотите работать:bufdo bdeleteчтобы закрыть все открытые буферы за один раз.
:onзакроет все буферы, кроме того, который вы сейчас редактируете (курсор находится внутри этого буфера).
:on!также закроет измененные буферы, но они станут скрытыми буферами.
:lsбудут перечислены все буферы с их статусом (скрытые, ...)
помощь:
:h only :h hidden-buffer :h ls
это не совсем то, что вы просили, но может дать желаемый результат. Это:
- делает текущую вкладку единственной открытой вкладкой (
:tabo)- делает окно на вкладке единственным открытым окном (
:only)- отображает первый буфер в открытом окне (
1 b)удаляет буферы с номерами от 2 до 2000 (
2,2000bd)
:tabo | :only | 1 b | 2,2000 bdесли у вас есть более 2000 буферов раскройте, отрегулируйте соответственно.
это вы просто хотите удалить все буферы,
1,2000bdдолжен делать работу, но обратите внимание, что новые, пустые буферы будут созданы для всех открытых вкладок и окон.
Если вам случится получить VIM полностью застрял вы все равно должны быть в состоянии убить его извне VIM.
- если вы можете приостановить VIM с помощью CTRL+Z, то вы можете убить его с помощью
kill %vim- если вы не можете приостановить VIM, вы должны быть в состоянии найти его pid с помощью
ps. Вы можете убить его:$ ps -f -C vim UID PID PPID C STIME TTY TIME CMD nfellman 27273 7473 0 Jun24 pts/15 00:00:00 /nfs/iil/home/nfellman/vim/bin/vim a.pl nfellman 37213 23747 0 Jun23 pts/15 00:00:00 /nfs/iil/home/nfellman/vim/bin/vim b.plтак что если я хочу убить VIM, который редактирует
a.plвы можете сделать:kill -9 27273Это должно работать даже внутри экрана
Comments