2011-11-30 45 views
1

我將Vim窗口設置爲90列,使用set columns=90,但是當命令(特別是pyunit-vim)打開新的垂直分割時會導致問題,因爲每個窗口只有45列,這太狹窄了。理想情況下,我想在現有寬度上添加分割,而不是撞擊它。有什麼方法來指定這種行爲?在Vim中設置新垂直分割的最小寬度

+1

可能有關,可能是重複的:http://stackoverflow.com/questions/7955473/smart-window-resizing- with-splits-in-macvim/8024859#8024859 –

+1

+1對於很好的問題和我的_new-word-of-day_:'碰撞':) – sehe

回答

1

編輯:只是注意到可能的重複評論,我輸入這個答案後。那裏的代碼看起來比我的更好,更通用(我的目標是處理一個寬或兩個分裂的OP)。另外,我認爲你可以刪除我的WinLeave autocmd,因爲在我能想到的場景中,將窗口與進入不同的窗口配對。

我認爲你可以通過分配autocmds到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 
相關問題