2011-06-21 52 views
1

这是我的意思。内置的文件浏览器:Ex以及其他像NERDtree和Project等都有致命的缺陷,它们只能在单个选项卡中运行。我大量使用选项卡,并且我想要一个文件树视图,以便我可以在全局范围内保持对所有选项卡的可见性,并将其从文件打开到新/现有选项卡。某种窗格或独立窗口或你有什么。就像凯特(kde)的作品一样。vim文件浏览器保持跨标签打开?

我知道有这样的emacs的东西,因为我过去曾经使用它,但我不记得它叫什么。

+1

我相信这是重复的。检查此答案:http://stackoverflow.com/questions/1979520/auto-open-nerdtree-in-every-tab/2762067#2762067或此链接http://denapo.li/blog/2011/01/vim-并且 - nerd-tree-always-share-the-same-tree-all-all-tabs /用于替代方法。另外,请检查一下关于“选项卡vs缓冲区”以阐明vim的选项卡行为。 http://stackoverflow.com/questions/102384/using-vims-tabs-like-buffers/103590#103590 – GmonC

回答

3

可能不是您正在寻找的答案,但还有另一种关于vim中的选项卡的方式,可以帮助解决您的问题。

您可以将每个标签视为您的工作空间中的“视图”(相当于像eclipse这样的IDE中的透视图),而缓冲列表通常是其他程序中的标签。

这样你可以有一个选项卡,用于打开NERDTree的单个编辑器,一个用于“大型编辑器”的选项卡,一个用于“垂直拆分编辑器”等的选项卡,每个选项卡可以打开也可以不打开相同的缓冲区。

这样你就可以坚持使用你的单一布局,并使用:bnext:bprev沿着列表顺序切换缓冲区,或者使用:b <approxname>轻松地跳转到指定的缓冲区。如果获得unimpaired plugin,映射]b[b也被定义为映射到:bnext:bprev以便于访问。 fuzzyfinder plugin也有一个:FufBuffer命令,可以让你轻松地跳转到一个打开的缓冲区(然后打开,分开或按下一个键,然后用一些非常直观的默认绑定找到它)。

我是vimcasts的粉丝,this episode有一点我在这里讨论的一般想法的更多细节。

+0

好的,但后来我有一个非常重要的问题。我如何在每个选项卡中使用不同的cwd,以便我不必每次都从相同的$ PATH导航来打开缓冲区? – numerodix

+3

如果使用':lcd'命令,那么即使在该窗口中更改缓冲区后,该窗口的cwd也会更改(无论是制表符还是拆分)。希望那是你的意思?尽管在单个vim实例中,完整的缓冲区列表在所有窗口和标签之间共享。 – actionshrimp

+0

@numerodix:你可以让你的工作目录b总是和你正在编辑的缓冲区一样。 http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file – GmonC

0

从我有限的经验来看,Vim的选项卡与firefox,kate或textmate或其他任何应用程序完全不同。他们不代表文件,你不应该这样使用它们。就像actionshrimp所说的那样,标签更像是视图或透视图,而且你不能将一个窗口(如NERDTree)从标签中分离出来。

在保持这种区别的同时,您可以尝试检测标签的创建并启动NERDTree。这样您可以在每个选项卡上拥有文件浏览器,但这些文件浏览器将是NERDTree的x个实例,而不是1个实例。我认为这会很快导致内存问题。

我对每个项目都有一个标签。这与我认为是选项卡背后的想法是一致的,对于保持组织有很大帮助。