这是我的意思。内置的文件浏览器:Ex以及其他像NERDtree和Project等都有致命的缺陷,它们只能在单个选项卡中运行。我大量使用选项卡,并且我想要一个文件树视图,以便我可以在全局范围内保持对所有选项卡的可见性,并将其从文件打开到新/现有选项卡。某种窗格或独立窗口或你有什么。就像凯特(kde)的作品一样。vim文件浏览器保持跨标签打开?
我知道有这样的emacs的东西,因为我过去曾经使用它,但我不记得它叫什么。
这是我的意思。内置的文件浏览器:Ex以及其他像NERDtree和Project等都有致命的缺陷,它们只能在单个选项卡中运行。我大量使用选项卡,并且我想要一个文件树视图,以便我可以在全局范围内保持对所有选项卡的可见性,并将其从文件打开到新/现有选项卡。某种窗格或独立窗口或你有什么。就像凯特(kde)的作品一样。vim文件浏览器保持跨标签打开?
我知道有这样的emacs的东西,因为我过去曾经使用它,但我不记得它叫什么。
可能不是您正在寻找的答案,但还有另一种关于vim中的选项卡的方式,可以帮助解决您的问题。
您可以将每个标签视为您的工作空间中的“视图”(相当于像eclipse这样的IDE中的透视图),而缓冲列表通常是其他程序中的标签。
这样你可以有一个选项卡,用于打开NERDTree的单个编辑器,一个用于“大型编辑器”的选项卡,一个用于“垂直拆分编辑器”等的选项卡,每个选项卡可以打开也可以不打开相同的缓冲区。
这样你就可以坚持使用你的单一布局,并使用:bnext
和:bprev
沿着列表顺序切换缓冲区,或者使用:b <approxname>
轻松地跳转到指定的缓冲区。如果获得unimpaired plugin,映射]b
和[b
也被定义为映射到:bnext
和:bprev
以便于访问。 fuzzyfinder plugin也有一个:FufBuffer命令,可以让你轻松地跳转到一个打开的缓冲区(然后打开,分开或按下一个键,然后用一些非常直观的默认绑定找到它)。
我是vimcasts的粉丝,this episode有一点我在这里讨论的一般想法的更多细节。
好的,但后来我有一个非常重要的问题。我如何在每个选项卡中使用不同的cwd,以便我不必每次都从相同的$ PATH导航来打开缓冲区? – numerodix
如果使用':lcd'命令,那么即使在该窗口中更改缓冲区后,该窗口的cwd也会更改(无论是制表符还是拆分)。希望那是你的意思?尽管在单个vim实例中,完整的缓冲区列表在所有窗口和标签之间共享。 – actionshrimp
@numerodix:你可以让你的工作目录b总是和你正在编辑的缓冲区一样。 http://vim.wikia.com/wiki/Set_working_directory_to_the_current_file – GmonC
从我有限的经验来看,Vim的选项卡与firefox,kate或textmate或其他任何应用程序完全不同。他们不代表文件,你不应该这样使用它们。就像actionshrimp所说的那样,标签更像是视图或透视图,而且你不能将一个窗口(如NERDTree)从标签中分离出来。
在保持这种区别的同时,您可以尝试检测标签的创建并启动NERDTree。这样您可以在每个选项卡上拥有文件浏览器,但这些文件浏览器将是NERDTree的x个实例,而不是1个实例。我认为这会很快导致内存问题。
我对每个项目都有一个标签。这与我认为是选项卡背后的想法是一致的,对于保持组织有很大帮助。
我有同样的问题,所以我写了这个小应用程序http://vimpal.sourceforge.net/
我相信这是重复的。检查此答案: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