Vim和NERDTree - 清除缓冲区中的[无名称]

时间:2016-08-03 18:28:53

标签: vim nerdtree

我是Vim和NERDTree的新手,我试图理解为什么在使用[No name]删除缓冲区后,缓冲区显示为:bd。我想保持我的NERDTree干净,所以我想知道是否有办法删除[No name]

例如,

My buffers

l.py文件是我正在处理的文件,[No name]文件是我已关闭的文件(使用:bd)。我根本不想让它们出现,因为它看起来很乱。

谢谢!

1 个答案:

答案 0 :(得分:2)

我怀疑NerdTree是否将缓冲区放入您的状态行。我想象一些状态行插件,如vim-airline。最好查看状态行插件的文档,了解如何在插件的错误跟踪器上进行自定义或提交问题。

我们需要谈谈......

我看到的最大问题是你试图将状态行用作临时搭建标签栏"。大多数其他编辑器使用标签栏作为管理文档的方式,但不使用Vim。这个临时的标签栏"一旦开始使用更多文件或使用拆分或标签(Vim's tabs are different)的更复杂的工作流程,这可能是一个坏主意。

<是啊噢?那么Buftabline,航空公司,BufTabs,MiniBufExpl,......?

所有这些插件都会显示您当前列出的缓冲区。也许通过某种定位信息,您可以通过缓冲区列表通过:bnext:bprevious(或者您可能使用的任何映射)进行骑行。

现在这很棒,所有这些插件都重新创建了其他编辑器的选项卡版本,但是Vim已经允许你在没有这些插件的情况下循环缓冲区。唯一缺少的是:ls很乐意为你做的菜单,而不会浪费任何屏幕空间。

想象一下,打开10个,25个,50个或100个以上的缓冲区。你的Buftabline如何处理这个问题?我打赌不好。您需要停止使用:bnext / :bprev这样的简单工具,并开始使用:b等电动工具。

观看:b

的力量

:b命令可以使用缓冲区编号直接切换到缓冲区。更有趣的是,:b可以采用部分文件名。

:b partial-name

:b需要更多力量吗?

  • 使用标签页完成
  • 使用<c-d>列出完成次数
  • 接受全球。例如:b *foo
  • 使用**进入目录。例如:b foo/**/bar
  • 不要忘记将set hidden添加到vimrc。请参阅:h 'hidden'

为什么在飞行时骑自行车?

Flying vs cycling

taken from Bairui's collection of Vim infographics

您可以使用简单的映射来同时使用:ls:b

nnoremap <leader>b :ls<cr>:b<space>

现在您可以直接前往您想要的缓冲区。不再骑车了。

但我喜欢插件

谁不喜欢一个好的插件。事实上,如果你正在寻找一个漂亮的缓冲切换插件,那么我建议你研究一个很好的模糊查找器,如CtrlP,以帮助你在缓冲区之间切换。模糊查找器实际上增加了缓冲区之间切换的价值,方法是减少输入速度,从而加快速度。

如果您只想拥有:b / :sb的模糊版本,那么您可能需要查看bumblebee.vim。注意:我是这个插件的作者。

结论

最终,您的工作流程将要求您一次使用3个以上的缓冲区。那时我建议你再看看:b命令,或者至少得到一个漂亮的模糊查找器。它将为您节省时间和精力。

所以当你飞行时停止骑自行车。