From 88020835d614143c0d5a7d062f4d01cd16e7386d Mon Sep 17 00:00:00 2001 From: Martin Grenfell Date: Wed, 17 Dec 2008 23:22:43 +1300 Subject: [PATCH] make the nerd tree only appear on the left or right remove "top" and "bottom" as valid settings for NERDTreeWinPos --- doc/NERD_tree.txt | 5 +---- plugin/NERD_tree.vim | 42 +++++++++--------------------------------- 2 files changed, 10 insertions(+), 37 deletions(-) diff --git a/doc/NERD_tree.txt b/doc/NERD_tree.txt index 62ae302..5cedbb3 100644 --- a/doc/NERD_tree.txt +++ b/doc/NERD_tree.txt @@ -861,15 +861,12 @@ Other examples: > ------------------------------------------------------------------------------ *'NERDTreeWinPos'* -Values: "left", "right", "top" or "bottom" +Values: "left" or "right" Default: "left". This option is used to determine where NERD tree window is placed on the screen. -"top" or "bottom", will cause a horizontal split to be created for the tree, -while "left" and "right" will cause a vertical split. - This option is makes it possible to use two different explorer type plugins simultaneously. For example, you could have the taglist plugin on the left of the window and the NERD tree on the right. diff --git a/plugin/NERD_tree.vim b/plugin/NERD_tree.vim index d4e3b44..eee30f6 100644 --- a/plugin/NERD_tree.vim +++ b/plugin/NERD_tree.vim @@ -1893,13 +1893,12 @@ endfunction "options etc function! s:createTreeWin() "create the nerd tree window - let splitLocation = (g:NERDTreeWinPos == "top" || g:NERDTreeWinPos == "left") ? "topleft " : "botright " - let splitMode = s:shouldSplitVertically() ? "vertical " : "" + let splitLocation = g:NERDTreeWinPos == "left" ? "topleft " : "botright " let splitSize = g:NERDTreeWinSize if !exists('t:NERDTreeBufName') let t:NERDTreeBufName = localtime() . s:NERDTreeBufName endif - let cmd = splitLocation . splitMode . splitSize . ' new ' . t:NERDTreeBufName + let cmd = splitLocation . 'vertical ' . splitSize . ' new ' . t:NERDTreeBufName silent! execute cmd setlocal winfixwidth @@ -2474,11 +2473,6 @@ function! s:openNodeSplit(treenode) let savesplitbelow=&splitbelow let savesplitright=&splitright - " Figure out how to do the split based on the user's preferences. - " We want to split to the (left,right,top,bottom) of the explorer - " window, but we want to extract the screen real-estate from the - " window next to the explorer if possible. - " " 'there' will be set to a command to move from the split window " back to the explorer window " @@ -2488,17 +2482,10 @@ function! s:openNodeSplit(treenode) " 'right' and 'below' will be set to the settings needed for " splitbelow and splitright IF the explorer is the only window. " - if s:shouldSplitVertically() - let there= g:NERDTreeWinPos == "left" ? "wincmd h" : "wincmd l" - let back = g:NERDTreeWinPos == "left" ? "wincmd l" : "wincmd h" - let right= g:NERDTreeWinPos == "left" - let below=0 - else - let there= g:NERDTreeWinPos == "top" ? "wincmd k" : "wincmd j" - let back = g:NERDTreeWinPos == "top" ? "wincmd j" : "wincmd k" - let below= g:NERDTreeWinPos == "top" - let right=0 - endif + let there= g:NERDTreeWinPos == "left" ? "wincmd h" : "wincmd l" + let back = g:NERDTreeWinPos == "left" ? "wincmd l" : "wincmd h" + let right= g:NERDTreeWinPos == "left" + let below=0 " Attempt to go to adjacent window exec(back) @@ -2515,13 +2502,7 @@ function! s:openNodeSplit(treenode) let &splitbelow=!below endif - " Create a variable to use if splitting vertically - let splitMode = "" - if (onlyOneWin && s:shouldSplitVertically()) || (!onlyOneWin && !s:shouldSplitVertically()) - let splitMode = "vertical" - endif - - echomsg splitMode + let splitMode = onlyOneWin ? "vertical" : "" " Open the new window try @@ -2712,7 +2693,7 @@ function! s:restoreScreenState() if !exists("b:NERDTreeOldTopLine") || !exists("b:NERDTreeOldPos") || !exists("b:NERDTreeOldWindowSize") return endif - exec("silent ". (s:shouldSplitVertically() ? "vertical" : "") ." resize ".b:NERDTreeOldWindowSize) + exec("silent vertical resize ".b:NERDTreeOldWindowSize) let old_scrolloff=&scrolloff let &scrolloff=0 @@ -2731,7 +2712,7 @@ function! s:saveScreenState() call s:putCursorInTreeWin() let b:NERDTreeOldPos = getpos(".") let b:NERDTreeOldTopLine = line("w0") - let b:NERDTreeOldWindowSize = s:shouldSplitVertically() ? winwidth("") : winheight("") + let b:NERDTreeOldWindowSize = winwidth("") exec win . "wincmd w" catch /NERDTree.view.InvalidOperation/ endtry @@ -2828,11 +2809,6 @@ function! s:setupSyntaxHighlighting() hi def link NERDTreeCurrentNode Search endfunction -" Function: s:shouldSplitVertically() {{{2 -" Returns 1 if g:NERDTreeWinPos is 'left' or 'right' -function! s:shouldSplitVertically() - return g:NERDTreeWinPos == 'left' || g:NERDTreeWinPos == 'right' -endfunction "FUNCTION: s:stripMarkupFromLine(line, removeLeadingSpaces){{{2 "returns the given line with all the tree parts stripped off "