无法通过Vim中的一个命令关闭多个缓冲区
我在屏幕上使用Vim。我运行命令无法通过Vim中的一个命令关闭多个缓冲区,vim,Vim,我在屏幕上使用Vim。我运行命令 vim <bigFolder> 如何通过Vim内部的一个命令关闭Vim中的所有活动缓冲区?:qall或:qa将关闭所有未保存缓冲区的窗口。也许:wqall!:萨尔!好一点 :on 将关闭除当前正在编辑的缓冲区之外的所有缓冲区(光标位于该缓冲区内) 也将关闭修改后的缓冲区,但这些缓冲区将成为隐藏缓冲区 :ls 将列出所有缓冲区及其状态(隐藏,…) 一些帮助: :h only :h hidden-buffer :h ls 如果你碰巧让VIM完全卡
vim <bigFolder>
如何通过Vim内部的一个命令关闭Vim中的所有活动缓冲区?
:qall
或:qa
将关闭所有未保存缓冲区的窗口。也许:wqall!:萨尔!好一点
:on
将关闭除当前正在编辑的缓冲区之外的所有缓冲区(光标位于该缓冲区内)
也将关闭修改后的缓冲区,但这些缓冲区将成为隐藏缓冲区
:ls
将列出所有缓冲区及其状态(隐藏,…)
一些帮助:
:h only
:h hidden-buffer
:h ls
如果你碰巧让VIM完全卡住了,你仍然可以从VIM外部杀死它
- 如果可以使用CTRL+Z暂停VIM,则可以使用
kill%VIM
- 如果无法挂起VIM,则应该能够使用
找到其pid。你可以杀死它:ps
a.pl
的VIM,您可以:
kill -9 27273
这应该在屏幕内部也能正常工作:q代码>
始终适用于我。使用:bufdo
命令可以在所有缓冲区上执行命令。在这种情况下,您希望运行:bufdo bdelete
一次性关闭所有打开的缓冲区。:%bd(elete)
我想这就是你想要的:on不关闭任何缓冲区
它只关闭其他窗口 这并不是你想要的,但下面可能会给出一个理想的结果。它:
- 使当前选项卡成为唯一打开的选项卡(
:tabo
)
- 使选项卡中的窗口成为唯一打开的窗口(
:only
)
- 在打开的窗口中显示第一个缓冲区(
1b
)
- 删除编号为2到2000的缓冲区(
22000bd
)
:tabo |:仅| 1 b | 22000 bd
如果打开的缓冲区超过2000个,请进行相应调整
如果您只想删除所有缓冲区,12000BD
应该可以完成这项工作,但请注意,将为所有打开的选项卡和窗口创建新的空缓冲区。我甚至无法使用命令Ctrl-D关闭屏幕,因为我正在浏览文件夹。关闭Vim没有任何帮助,因为我在屏幕上,所有内容都保留在上一次会话中。我认为您将缓冲区与windows混淆了q或:退出关闭当前窗口。使用:bd或:bdelete卸载缓冲区并将其从缓冲区列表中删除。sunaku的答案是唯一正确的:)非常感谢!你救了我一天。如果没有你的命令,我的终端将毫无用处。:qa是OP想要的,但当然它也会退出vim。对于gvim,当您希望完全关闭所有内容但不丢失gui窗口时,这通常是不可取的,因此最好使用以下技术之一关闭所有缓冲区而不退出。谢谢您的回答!--我看不出选项[!]和没有它之间的区别。我所有的缓冲区都被这两个命令隐藏了,即使是我保存的命令。你怎么能看出区别?我从vim帮助中获取了这个,你是对的,我看不出两者之间的区别。:on!实际上关闭了其他窗口,而不是缓冲区。这完全是错误的。缓冲区与windows非常不同。是的,缓冲区是打开的。试试下面答案中的:%bd,这对我很有用!美好的我甚至不知道可以在vim命令模式下将命令管道连接在一起+1。在这种情况下,它不是真正的“管道”。“bar”操作符只允许您在Vim的一行中执行多个命令。由于bdelete接受一个范围,您也可以这样做:19999bd,其中9999只是一个足够高的数字,似乎可以包含任何打开的缓冲区编号。如何将此应用于一个缓冲区<代码>:bd
可能吗?
:h only
:h hidden-buffer
:h ls
$ 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
kill -9 27273