Не удалось закрыть много буферов с помощью одной команды в Vim



Я использую Vim в экране. Я запускаю команду



vim <bigFolder>


Я застрял, так как не имеет смысла закрывать каждый буфер



:q


как вы можете закрыть все активные буферы в Vim, по одной команде внутри Vim?

544   9  
vim

9 ответов:

:qall или :qa закрыть все окна

The :bufdo команда позволяет выполнить команду на всех буферах. В этом случае, вы хотите работать :bufdo bdelete чтобы закрыть все открытые буферы за один раз.

:%bd (elete)

Я думаю, что это то, что вы просите

:on

закроет все буферы, кроме того, который вы сейчас редактируете (курсор находится внутри этого буфера).

:on!

также закроет измененные буферы, но они станут скрытыми буферами.

:ls

будут перечислены все буферы с их статусом (скрытые, ...)

помощь:

:h only
:h hidden-buffer
:h ls

:on не закрывает каких-либо буферов.

он закрывает только другие окна.

это не совсем то, что вы просили, но может дать желаемый результат. Это:

  • делает текущую вкладку единственной открытой вкладкой (:tabo)
  • делает окно на вкладке единственным открытым окном (:only)
  • отображает первый буфер в открытом окне (1 b)
  • удаляет буферы с номерами от 2 до 2000 (2,2000bd)

    :tabo | :only | 1 b | 2,2000 bd

если у вас есть более 2000 буферов раскройте, отрегулируйте соответственно.

это вы просто хотите удалить все буферы,1,2000bd должен делать работу, но обратите внимание, что новые, пустые буферы будут созданы для всех открытых вкладок и окон.

Это не спасает буферы, хотя. Может быть: wqall! :xall! это немного лучше.

Если вам случится получить 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

Это должно работать даже внутри экрана

:q!

всегда работает для меня.

Comments

    Ничего не найдено.