在垂直分割的水平分割中打开一个窗口

8
我希望同时打开NERDTree和TagList,但我不需要它们占据整个屏幕的高度。相反,我想让它们在单个垂直分割线内水平分割。

更具体地说,我想能够打开一个窗口,比如NERDTree,让它占满整个屏幕的高度。然后当我打开TagList时,让它与已经打开的NERDTree窗口水平分割。
有没有办法做到这一点?可能甚至有一种非“特定于这两个插件”的方法吗?
3个回答

8

NERDTree和Taglist无法在分屏中打开。

假设您在左侧有一个拆分的缓冲区(例如源代码),右侧有Taglist。

您可以将此放入一个函数中,并使用映射调用它:

NERDTree    " open NERDTree
wincmd J    " move NERDTree to the very bottom
wincmd k    " move the cursor to the above split (the source code buffer)
wincmd H    " move the split to the very left
wincmd l    " move the cursor back to the NERDTree split
resize 20   " resize the split height to 20
exe 'vertical resize ' . g:NERDTreeWinSize    " reset the split width

这很不稳定,但它能够运行。在分屏跳转屏幕时,您会看到一个短暂的视觉故障。

1
我已经在重复的帖子中发布了解决方案: 在NERDTree和TList中& 它涉及到对 'taglist.vim' 脚本进行一些编辑,以添加打开时的新分割选项。

1

水平分割:

:split 

垂直分割:

:vsplit

然后,当您按照自己的喜好拆分屏幕后,在所需的框架内打开nerdtree。 (或者您可以像@Vivek Pandey建议的那样使用缩写::sp :vsp)。


2
:sp 和 :vsp 可以节省一些按键(它们唯一地扩展为 :split 和 :vsplit) - Vivek Pandey
你如何在特定窗口中打开这些插件之一? - skeletalmonkey
首先,您需要拆分窗口。然后进入所需的窗口并打开所需的插件。 - Heisenbug
1
有没有我不知道的做法?我所知道的唯一打开插件的方法是在新的分屏中打开它们,而不是在当前窗口中。 - skeletalmonkey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接