VIM:如何从左侧的 NerdTree 面板以 vsplit 的形式在右侧打开文件?

Posted

技术标签:

【中文标题】VIM:如何从左侧的 NerdTree 面板以 vsplit 的形式在右侧打开文件?【英文标题】:VIM: How can i open a file at right side as vsplit from a left side NerdTree panel? 【发布时间】:2011-12-16 06:11:54 【问题描述】:

我安装了 NerdTree 插件。

如何从左侧的 NerdTree 面板以 vsplit 的形式在右侧打开文件?

【问题讨论】:

【参考方案1】:

有一个 s 命令,但它会打开一个拆分到当前缓冲区左侧的文件。虽然你可以按 Ctrl+W r 来交换窗口。

【讨论】:

没关系,但是如果我想打开另一个文件键入 s,那么我会得到另一个拆分窗口,但是我想用当前打开的文件替换旧的拆分窗口,我该怎么做? 似乎在添加set splitright 之后,正如@PrinceGoulash 所建议的那样,在NerdTree 内的文件上s 将在右侧打开一个拆分,而无需执行Ctrl-W r。如果我对您的理解正确,如果您只想使用两个垂直拆分的窗口,您可以切换到旧窗口并通过 NerdTree 在其中打开一个新文件,只需点击Enter 不,我想说的是,有两个 vsplit 窗口,左边是 nerdtree 菜单,如果我按“s”,它就会来到右边。不会再出现 vsplitted 窗口。 @guru 然后你想“打开”新窗口,而不是“拆分”它。始终在/替换最后选择的缓冲区中打开一个窗口。不幸的是,它很可能是您打开的两个中的左侧之一。不理想,但一种选择是通过Ctrl+W R 旋转窗口,然后打开文件并旋转回来。【参考方案2】:

要使vsplit 将新缓冲区放在当前缓冲区的右侧:

set splitright

同样,让split 将新缓冲区放在当前缓冲区下方:

set splitbelow

不过,我还没有在 NerdTree 上尝试过。

【讨论】:

好的,但是如何打开一个 vsplited 文件替换旧文件? @shibly 如果您设置了splitright,那么您可以退出当前位于右侧的文件vsplit newfilename,这会将新文件放在旧文件所在的位置。您也可以像这样在一行中执行这些操作:q | vsplit newfilename。这假定右边的文件是活动文件。 刚刚测试过,splitright 确实适用于 nerdtree。请注意,这将使所有进一步的拆分水平而不是垂直,除非使用vsplit【参考方案3】:

这有点小技巧,但我是这样做的:

    将光标放在我要打开文件的窗口中 点击<leader>n<leader>n(这会关闭NERDtree,然后用NERDtree中的光标再次打开它) 选择文件

在我的系统上,如果文件尚未在我的屏幕上打开,则会在我刚刚打开的最后一个窗口中打开它。

从您要打开文件的窗口开始。

点击<leader>n<leader>n 关闭并重新打开NERDTree

选择你想要的文件!

快速C-w = 将使您的窗户恢复到正确的比例。

【讨论】:

很好的解决方案。 <leader>n 你的意思是<C-n>【参考方案4】:

不确定是否还有其他人仍在为此苦苦挣扎,但这就是我的处理方式。

你可以使用

:ls 

列出可用的缓冲区。看起来像:

1 "foo.txt"
2 "blame_the_user.java"

:b1 选择 foo.txt

:b2 for blame_the_user.java

可以使用:sp:vs 从任何窗口设置中完成此方法。

首先打开要拆分的缓冲区。

【讨论】:

以上是关于VIM:如何从左侧的 NerdTree 面板以 vsplit 的形式在右侧打开文件?的主要内容,如果未能解决你的问题,请参考以下文章

VIM安装 NERDTREE,SOLARIZED 插件

VIM安装 NERDTREE,SOLARIZED 插件

VIM安装 NERDTREE,SOLARIZED 插件

VIM安装 NERDTREE,SOLARIZED 插件

VIM安装 NERDTREE,SOLARIZED 插件

如果 NERDTree 和 TagList 是最后也是唯一的缓冲区,则自动退出 Vim