Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Opening a window in a horizontal split of a vertical split

Tags:

vim

I want have both NERDTree and TagList open at the same time, but I don't need for them to have the whole height of the screen. Instead I would like to have them split horizontally within a single vertical split.

More specifically, I want to be able to open one, say NERDTree, and have it take up the full height of the screen. Then when I open TagList, to have it horizontally split with the already open NERDTree window.

Is there a way to do this? Possibly even a non 'specific to these two plugins' way?

like image 722
skeletalmonkey Avatar asked May 15 '11 01:05

skeletalmonkey


People also ask

How do you split a window vertically?

To use the keyboard shortcut, press and hold the Windows key followed by the Left or Right Arrow key to snap the active window to the left or right. Next, press and hold the Windows key followed by the Up or Down Arrow key to move the snapped window into the top or bottom corner.

What is horizontal split?

Horizontal Split is a layout container coach view that can split content that is displayed horizontally in a panel into two or more sections.


2 Answers

NERDTree and Taglist aren't going to open inside splits.

Let's say you have a split buffer on the left (for eg. source code), and Taglist on the right.

You can put this in a function, and invoke it with a mapping:

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

This is pretty dodgy, but it works. You'll see a brief visual glitch while the split jumps around the screen.

like image 75
Mohammed Avatar answered Oct 26 '22 03:10

Mohammed


Horizontal split:

:split 

Vertical split:

:vsplit

Then when you have split your screen how you prefer, open nerdtree inside the desired frame. (Or you can use abbreviation :sp :vsp like suggested by @Vivek Pandey).

like image 31
Heisenbug Avatar answered Oct 26 '22 03:10

Heisenbug