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

lSa*_*int 7 vim nerdtree minibufexplorer

我的.vimrc设置:

nmap <silent><F1> :NERDTreeToggle<CR>
nmap <silent><F2> :TMiniBufExplorer<CR>
let g:miniBufExplMapWindowNavVim = 1
let g:NERDTreeWinPos = "right"
Run Code Online (Sandbox Code Playgroud)

首先它看起来像:

--------------------------
| minibufexplorer   |    |
---------------------    |
|                   |    |
| top               |    |
|                   |    |
---------------------NERD|
|                   |    |
| btm               |    |
|                   |    | 
--------------------------
Run Code Online (Sandbox Code Playgroud)

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

--------------------------
|                   |    |                  
|                   |    |
| top               |    |
|                   |    |
---------------------NERD|
|                   |    |
| btm               |    |
|                   |    | 
--------------------------
Run Code Online (Sandbox Code Playgroud)

现在它看起来好像一切都好,但是当我再次按F2并且minibufexplorer出现时,顶部窗口被调整大小:

--------------------------
| minibufexplorer   |    |
---------------------    |
| top               |    |
---------------------NERD|
|                   |    |
|                   |    |
|                   |    |
| btm               |    |
|                   |    | 
--------------------------
Run Code Online (Sandbox Code Playgroud)

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

Qui*_*ahl 6

问题出在minibufexpl.vim的第450 :在函数中StartExplorer,你会发现set noequalalways.来自:help equalalways:

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

这是MiniBufExplorer的一部分,如果您希望它的行为不同,您将需要自己更改它作者提交问题.