当我切换minibufexplorer时,如何在打开nerdtree时停止调整窗口大小

时间:2012-07-10 08:46:17

标签: vim nerdtree minibufexplorer

我的.vimrc设置:

nmap <silent><F1> :NERDTreeToggle<CR>
nmap <silent><F2> :TMiniBufExplorer<CR>
let g:miniBufExplMapWindowNavVim = 1
let g:NERDTreeWinPos = "right"

首先看起来像:

--------------------------
| minibufexplorer   |    |
---------------------    |
|                   |    |
| top               |    |
|                   |    |
---------------------NERD|
|                   |    |
| btm               |    |
|                   |    | 
--------------------------

接下来当我按F2时,minibufexplorer被切换:

--------------------------
|                   |    |                  
|                   |    |
| top               |    |
|                   |    |
---------------------NERD|
|                   |    |
| btm               |    |
|                   |    | 
--------------------------

现在看来好像一切都好 但是当我再次按F2并且minibufexplorer出现时 然后调整了顶部窗口的大小:

--------------------------
| minibufexplorer   |    |
---------------------    |
| top               |    |
---------------------NERD|
|                   |    |
|                   |    |
|                   |    |
| btm               |    |
|                   |    | 
--------------------------

如果右侧没有nerdtree窗口,则不会调整大小。 那么当nerdtree打开时如何停止调整窗口大小? (顺便说一句:抱歉,我无法上传图片因为我只有8个声望。)

1 个答案:

答案 0 :(得分:6)

问题出在minibufexpl.vim的第450行:在函数StartExplorer中,您会找到set noequalalways。来自:help equalalways

  

启用此选项后,分割或关闭窗口后,所有窗口将自动调整为相同大小。这也会在选项打开时发生。 关闭时,拆分窗口将减小当前窗口的大小,并使其他窗口保持不变。关闭窗口时,额外的行将被赋予其旁边的窗口(取决于“splitbelow”)和'分裂')。当垂直和水平分割窗口混合时,计算最小尺寸,并且如果有空间,则一些窗口可能更大。 'eadirection'选项告诉大小受影响的方向。通过分别设置'winfixheight'和'winfixwidth',可以避免更改窗口的高度和宽度。如果在创建新窗口时指定了窗口大小,则当前大小不均衡(它很复杂,但将来可能会实现)。

这是MiniBufExplorer的一部分,如果您希望它的行为不同,您需要{} 3 {}或change it yourself给作者。