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

时间:2011-05-15 01:19:29

标签: vim

我希望同时打开NERDTree和TagList,但我不需要让它们拥有整个屏幕高度。相反,我想让它们在一个垂直分割中水平分割。

更具体地说,我希望能够打开一个,比如NERDTree,让它占据屏幕的整个高度。然后当我打开TagList时,让它与已经打开的NERDTree窗口水平分割。

有办法做到这一点吗?可能甚至不是“特定于这两种插件”的方式吗?

3 个答案:

答案 0 :(得分: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 :(得分:1)

横向拆分:

:split 

垂直分割:

:vsplit

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

答案 2 :(得分:1)

我在这里的重复帖子中发布了一个解决方案: NERDTree & TList in

它涉及编辑'taglist.vim'脚本,以便在打开时添加新的分割选项。