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 的形式在右侧打开文件?的主要内容,如果未能解决你的问题,请参考以下文章