我在Vim中打开了几个文件,例如,运行 php
vim a/*.php
打开23个文件。 vim
而后我进行编辑并运行如下两次 bash
:q
它关闭了我全部的缓冲区。 spa
如何在Vim中只关闭一个缓冲区? 命令行
而不是浏览:ls命令的输出并经过指定其编号来删除(卸载,擦除..)缓冲区,我发现使用文件名一般更有效。 code
例如,在我打开几个.txt文件以刷新个人一些精细点的记忆以后..复制并粘贴几行文本以用做各类类型的模板......等等我输入如下内容: 字符串
:bd txt <Tab>
请注意,匹配的字符串没必要位于文件名的开头。 工作流
上面显示了与屏幕底部的“txt”匹配的文件名列表,并保持我最初输入的:bd命令不变,准备完成。 模板
这是一个例子: 循环
doc1.txt doc2.txt :bd txt
我能够在'txt'位上退格并键入我想要删除的文件名,但这变得很是方便的是我没必要:若是我第二次点击Tab键,Vim会自动完成个人命令第一场比赛:
:bd doc1.txt
若是我想摆脱这个特定的缓冲区,我只须要按Enter键。
若是我想要删除的缓冲区刚好是第二个(第三个......等)匹配,我只须要继续按Tab键使my:bd命令在匹配列表中循环。
固然,此方法也可用于经过如下命令切换到给定缓冲区:b ..:sb ..等。
当设置'隐藏'Vim选项时,这种方法特别有用,由于缓冲区列表可能很快变得很是大,覆盖几个屏幕,而且很难找到我正在寻找的特定缓冲区。
要充分利用此功能,最好阅读如下Vim帮助文件并相应地调整Tab命令行完成的行为,以便最适合您的工做流程:
:help wildmode
我上面描述的行为来自如下设置,为了模仿bash完成,我为了一致性而选择了这个设置:
:set wildmode=list:longest,full
与使用缓冲区编号相反,这种方法的优势在于我一般至少记住给定文件名的一部分,让我直接定位缓冲区,而没必要经过:ls命令首先查找其编号。
怎么样
vim -O a a
这样你就能够编辑左边的单个文件并导航右边的整个目录......只是一个想法,而不是解决方案......
使用:buffers检查缓冲区ID
你会看到那里的缓冲区列表
1 a.php 2 b.php 3 c.php
若是你想从缓冲区中删除b.php
:2bw
若是要从缓冲区中删除/关闭全部内容
:1,3bw
使用:
:ls
- 列出缓冲区 :bd#n
#n - 关闭缓冲区,其中#n是缓冲区编号(使用ls
来获取它) 例子:
删除缓冲区2:
:bd2
若是之前的答案没有明显这一点:
:bd将关闭当前缓冲区。 若是您不想获取缓冲区列表。