在Vim中设置新垂直分割的最小宽度

时间:2011-11-30 23:19:03

标签: vim

我使用set columns=90将我的Vim窗口设置为90列,但这会导致命令(特别是pyunit-vim)打开新的垂直拆分时出现问题,因为每个窗口只有45列,太狭隘了。理想情况下,我想在现有宽度上添加分割,而不是对其进行冲击。有没有办法指定这种行为?

1 个答案:

答案 0 :(得分:1)

编辑:在我输入此答案后,我注意到可能的重复评论。那段代码看起来比我的更好,更通用(我的目标是处理一个宽或两个宽分裂的OP)。此外,我认为您可以删除我的WinLeave autocmd,因为在我能想到的场景中,保留窗口将与进入不同的窗口配对。

我认为你可以通过为WinEnter和WinLeave分配autocmd来接近你想要的东西。无论何时进入或离开窗口,下面的代码都会设置调用尺寸调整功能。我认为,更好的参赛活动可能是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