Подтвердить что ты не робот

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

Я использую Vim в Screen. Я запустил команду

vim <bigFolder>

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

:q

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

4b9b3361

Ответ 1

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

Ответ 2

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

Ответ 3

:% шд (далить)

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

Ответ 4

:on

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

:on!

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

:ls

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

Некоторая помощь:

:h only
:h hidden-buffer
:h ls

Ответ 5

:on НЕ закрывает буферы.

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

Ответ 6

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

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

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

Если у вас открыто более 2000 буферов, отрегулируйте их соответствующим образом.

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

Ответ 7

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

Ответ 8

Если вам удастся полностью закрыть 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

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

Ответ 9

:q!

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