Когда я переключаю минибуфэксплорер, как остановить изменение размера окна при открытом окне

Мои настройки.vimrc:

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

Сначала это выглядит так:

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

Затем, когда я нажимаю F2, переключатель минибуфера был переключен:

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

прямо сейчас видно, что все в порядке, но когда я снова нажимаю F2 и появляется минибуфэксплорер, размер верхнего окна изменяется:

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

Если справа нет окна nerdtree, оно не изменится. Так как остановить изменение размера окна, когда открыт ботрид? (кстати: извините, я не могу загрузить фото, потому что у меня только 8 репутации.)

1 ответ

Решение

Проблема в строке 450 файла miniufexpl.vim: в функции StartExplorer, ты найдешь set noequalalways, От :help equalalways:

При включении все окна автоматически становятся одинаковыми по размеру после разделения или закрытия окна. Это также происходит в тот момент, когда опция включена. Когда выключено, разделение окна уменьшит размер текущего окна и оставит другие окна такими же. При закрытии окна дополнительные строки передаются окну рядом с ним (в зависимости от "splitbelow" и "splitright"). При смешивании окон, разделенных по вертикали и горизонтали, вычисляется минимальный размер, и некоторые окна могут быть больше, если есть место. Опция 'eadirection' указывает, в каком направлении изменяется размер. Изменения высоты и ширины окна можно избежать, установив winfixheight и winfixwidth соответственно. Если размер окна указан при создании нового окна, то размеры в данный момент не уравниваются (это сложно, но может быть реализовано в будущем).

Это часть MiniBufExplorer, и если вы хотите, чтобы он вел себя по-другому, вам придется либо изменить его самостоятельно, либо отправить вопрос автору.

Другие вопросы по тегам