:vsplit(缩写::vs)垂直分割Vim视口。:30vs分割视口,使新窗口宽30个字符。一旦创建了这个30字符的窗口,如何将其大小更改为31或29?

对于水平窗口,Ctrl-W +增加一行数。将列加1的等效命令是什么?


当前回答

同样的,我在我的.vimrc中使用下面的代码来让我在分割中移动,自动将我移动到的分割扩展到它的全部大小,并将其余的分割缩小到它们的最小高度或宽度:

" Switch between window splits using big J or K and expand the split to its 
" full size. 
" 
" Move vertically in the window through the horizontal splits... 
map <C-J> <C-w>j<C-w>_ 
map <C-K> <C-w>k<C-w>_ 

" Move horizontally in the window through the vertical splits... 
map <C-H> <C-w>h<C-w>\| 
map <C-L> <C-w>l<C-w>\| 

其他回答

我使用数字通过在.vimrc中映射以下内容来调整大小

nmap 7 :res +2<CR> " increase pane by 2 
nmap 8 :res -2<CR> " decrease pane by 2
nmap 9 :vertical res +2<CR> " vertical increase pane by 2
nmap 0 :vertical res -2<CR> " vertical decrease pane by 2

如果你需要水平拆分调整大小: 该命令对所有分割都是一样的,只是参数改变了:

- +而不是< >

例子: 水平大小减少10列

:10winc -

水平大小增加30列

:30winc +

或在正常模式下:

水平分割

10 CTRL+w -

30 CTRL+w +

垂直分裂

10 CTRL+w < (decrease)

30 CTRL+w >(增加)

同样的,我在我的.vimrc中使用下面的代码来让我在分割中移动,自动将我移动到的分割扩展到它的全部大小,并将其余的分割缩小到它们的最小高度或宽度:

" Switch between window splits using big J or K and expand the split to its 
" full size. 
" 
" Move vertically in the window through the horizontal splits... 
map <C-J> <C-w>j<C-w>_ 
map <C-K> <C-w>k<C-w>_ 

" Move horizontally in the window through the vertical splits... 
map <C-H> <C-w>h<C-w>\| 
map <C-L> <C-w>l<C-w>\| 

我把这些映射到我的.gvimrc中,让我点击command-[arrow]来移动当前窗口的高度和宽度:

" resize current buffer by +/- 5 
nnoremap <D-left> :vertical resize -5<cr>
nnoremap <D-down> :resize +5<cr>
nnoremap <D-up> :resize -5<cr>
nnoremap <D-right> :vertical resize +5<cr>

对于MacVim,你必须把它们放在你的。gvimrc(而不是。vimrc)中,否则它们会被系统的。gvimrc覆盖

这是我现在使用的:

nnoremap <silent> <Leader>= :exe "resize " . (winheight(0) * 3/2)<CR>
nnoremap <silent> <Leader>- :exe "resize " . (winheight(0) * 2/3)<CR>
nnoremap <silent> <Leader>0 :exe "vertical resize " . (winwidth(0) * 3/2)<CR>
nnoremap <silent> <Leader>9 :exe "vertical resize " . (winwidth(0) * 2/3)<CR>