7

我的 .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 个声望。)

4

1 回答 1

6

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

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

这是MiniBufExplorer的一部分,如果您希望它的行为有所不同,您必须自己更改它或向作者提交问题

于 2013-04-16T13:50:52.917 回答