Как увеличить размер окна вертикального разделения в Vim


316

:vsplit(краткая форма :vs:) разделить область просмотра Vim по вертикали. :30vsразбивает область просмотра, делая новое окно шириной 30 символов. Как только это окно с 30 символами будет создано, как изменить его размер на 31 или 29?

С горизонтальными окнами Ctrl- W +увеличивает количество строк на одну. Какая эквивалентная команда для увеличения столбцов на один?


15
Вы также можете нажать Ctrl-W 5+, чтобы увеличить высоту окна на 5 (или любое число). То же самое касается Ctrl-W 5-
AlexMA

1
:h ^wчтобы увидеть список оконных команд. :h ^wwчтобы увидеть помощь нормальной команды Ctrl-w w.
Qeatzy

Ответы:


450

CTRL-W >

и

CTRL-W <

сделать окно шире или уже.


115
или :30winc > и :30winc <иметь более 30 символов в ширину.
Бенуа

85
или 30CTRL-W >оставаться в духе ответа.
Ксавье Т.

50
:vertical resize 30изменить размер текущего окна до 30 символов в ширину.
Питер Ринкер,

20
также CTRL-W 30>
ДБЛА

5
:res <N>установить текущий размер окна ровно в N строк (для высоты, а не для ширины)
lukecampbell

249

И Ctr-W =

сделает их равными


10
:winc =Это также сделает их равными.
nitin_cherian

1
Это для горизонтальных расколов, верно? Что будет эквивалентно вертикальным расщеплениям?
Хосе Рамон

3
@ JoséRamón Эта команда работает как для горизонтального, так и для вертикального разделения.
Натан,

105

В случае, если вам нужно изменить размер ГОРИЗОНТАЛЬНОГО РАЗДЕЛА :
команда одинакова для всех разделений, только изменения параметра :

- + вместо того < >

Примеры :
уменьшить горизонтальный размер на 10 столбцов

:10winc -

Увеличить горизонтальный размер на 30 столбцов

:30winc +

или в обычном режиме:

Горизонтальные расщепления

10 CTRL+w -

30 CTRL+w +

Вертикальные расколы

10 CTRL+ w <(уменьшение)

30 CTRL+ w >(увеличение)


3
+1. Небольшое замечание: согласно :he winc ctrl+w [count] {arg}работам также ...
ПравдаY

45

Еще один совет с моей стороны:

Чтобы установить ширину окна, скажем, ровно 80 столбцов, используйте

80 CTRL+W |

Чтобы установить максимальную ширину, просто опустите предыдущее число:

CTRL+W |

6
ВЫСОТА: аналогом этих параметров является «_» (shift + -) для регулировки высоты. Это на самом деле очень легко запомнить визуально, так как | буквально вертикальное разделение, а _ буквально горизонтальная разделительная линия. Пример: 15 CTRL + W _ Устанавливает текущую высоту разделения на 15 строк. Еще один способ запомнить: вам нужен SHIFT для абсолютных размеров, так как оба | и _ требуется сдвиг, чтобы быть нажатым
freeo

29

Я сопоставил их в моем .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


1
что это значит в конце? Я не видел этого в nnoremap раньше
Zen

2
это сокращение от «возврат каретки», в основном это эквивалент возврата пользователя
Ted Naleid

9

В том же духе я использую следующее, .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>\| 

4

Я использую цифры для изменения размера, отображая следующее в .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

Я думаю ты имеешь ввиду nmap 9 :vertical res +2<CR> а не -2дляvertical increase
Зак

Это действительно хорошая привязка. Спасибо!
Леон - Хан Ли

3

Это то, что я использую на данный момент:

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>

1

Я использую следующие команды для этого:

set lines=50     " For increasing the height to 50 lines (vertical)
set columns=200  " For increasing the width to 200 columns (horizontal)
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.