«Минимизация» вертикального разделения окон VIM - PullRequest
8 голосов
/ 11 августа 2009

Я использую горизонтальное и вертикальное разделение окон в VIM, и до недавнего времени я пользовался удобством двух команд для эффективного скрытия (или минимизации) моих горизонтальных разделений. Я настроил их, добавив следующие строки в мой .vimrc файл:

set winminheight=0
map <C-J> <C-W>j<C-W>_
map <C-K> <C-W>k<C-W>_

Нажатие Control-j или Control-k позволяет перемещаться по горизонтальным расколам вверх или вниз. То, что я хотел бы сделать, это то же самое, что и вертикальные разбиения, показывая или скрывая левое или правое разделение, используя Control-Shift-h и Control-Shift-l; h движется влево, l движется вправо. Я пробовал следующее без особого успеха:

set winminwidth=0
map <S-C-L> 500<C-W>h<C-W>_
map <S-C-H> 500<C-W>l<C-W>_

Действие будет аналогично использованию Control-w-< и Control-w->, только смещение вертикального разбиения полностью влево или запись, а не только по одной строке за раз.

Есть идеи, как этого добиться? Благодаря.

Ответы [ 2 ]

11 голосов
/ 11 августа 2009

Прежде всего, вы не сможете использовать и , как вы хотите. Как это:

set winminwidth=0
nmap <Leader><C-h> <C-W>h500<C-W>>             
nmap <Leader><C-l> <C-W>l500<C-W>>               

Обычные лидерские клавиши в vim - это запятая и обратная косая черта:

:let mapleader = ","

Но вы обнаружите, что это раздражает, когда для этого требуется 3 нажатия клавиш, так что вы можете просто отпустить нажатие клавиши управления. Таким образом (если ваш лидер запятая) вы можете просто нажать «, h» и «, l», чтобы перейти к разделениям слева и справа:

set winminwidth=0
nmap <Leader>h <C-W>h500<C-W>>             
nmap <Leader>l <C-W>l500<C-W>>       

" (FTW) :D

...

Парень по имени Тони Чепмен отвечает почему вы не можете использовать control + shift:

Vim отображает его Ctrl+printable_key комбинации в соответствии с ASCII. это означает, что "Ctrl+lowercase letter" такой же, как соответствующий "Ctrl+uppercase letter" и это Ctrl+<key> (где <key> для печати ключ) определяется только когда <key> находится в диапазон 0x40-0x5F, строчные письмо или знак вопроса. Это также означает, что Ctrl-[ совпадает с Esc, Ctrl-M совпадает с Enter, Ctrl-I является такой же как Tab.

Так что да, Ctrl-s и Ctrl-S (т.е. Ctrl-s и Ctrl-Shift-s) одинаковы для Vim. Это по замыслу и не собираюсь измениться.

2 голосов
/ 11 августа 2009

Попробуйте

set winminwidth=0
map <S-C-L> <C-W>h<C-W>|
map <S-C-H> <C-W>l<C-W>|

Это не перемещает окно полностью влево или вправо (это <C-W>H и <C-W>L), оно просто перемещает курсор в левое (или правое) окно и максимизирует это окно по горизонтали.

Подробнее см. :help CTRL_W_bar.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...