我使用set columns=90
将Vim窗口设置为90列,但是当命令(特别是pyunit-vim
)打开新的垂直分割时,这会导致问题,因为每个窗口只有45列,这太窄了。理想情况下,我想添加分割到现有的宽度,而不是冲击它。有什么方法可以指定这种行为吗?
编辑:刚刚注意到可能重复的评论,在我输入这个答案之后。那里的代码看起来比我的更好,更通用(我的是针对OP谁是处理一个宽或两个宽的分裂)。此外,我认为你可以删除WinLeave autocmd在我的,因为离开一个窗口将与进入一个不同的窗口在我能想到的场景配对。
我认为你可以通过给WinEnter和WinLeave分配自动命令来接近你想要的。下面的代码设置为在进入或离开窗口时调用大小调整函数。我认为,一个更好的进入事件可能是BufWinEnter。您可能需要调整,但在您的vimrc中类似的代码将工作,我认为:
autocmd WinEnter * call AdjustSize()
autocmd WinLeave * call AdjustSize()
function! AdjustSize()
if (winwidth('%')<50) && (&columns<=90)
set columns = 2 * &columns
"then make widths the same
exe "normal! <c-w>="
else
set columns=90
" or adjust size only if window isnt' huge...
" if columns >= 150
" set columns = 90
" endif
endif
endfunction