“最小化”垂直VIM窗口分割

时间:2009-08-11 18:30:10

标签: vim

我在VIM中使用水平和垂直窗口分割,直到最近,我很享受两个命令的安慰,以有效地隐藏(或最小化)我的水平分割。我将它们添加到我的.vimrc文件中添加以下行:

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

点击Control-jControl-k通过向上或向下导航水平分割。我想通过使用Control-Shift-hControl-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->,只将垂直拆分完全移动到左侧或写入,而不是一次只移动一行。

关于如何实现这一目标的任何想法?感谢。

3 个答案:

答案 0 :(得分:11)

首先,您将无法在代码中使用&lt; S-C-(shift + control)(见下文)。但你可以使用'mapleader'作为你的“转变”,然后使用&lt; C-h&gt;和&lt; C-1&gt;就像你想要的那样。像这样:

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

...

一个叫Tony Chapman的人answers为什么你不能使用control + shift:

  

Vim映射其Ctrl+printable_key   根据ASCII组合。这个   意味着“Ctrl+lowercase letter”   与相应的相同   “Ctrl+uppercase letter”和那个   Ctrl+<key>(其中<key>是可打印的   key)仅在<key>所在时定义   范围0x40-0x5F,小写   信或问号。它也是   表示Ctrl-[Esc相同,   Ctrl-MEnter相同,Ctrl-I   与Tab相同。

     

是的,Ctrl-sCtrl-S(即Ctrl-s   和Ctrl-Shift-s)是一样的   Vim的。这是设计而不是   要改变。

答案 1 :(得分:2)

尝试

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

答案 2 :(得分:0)

  

Crl-w 1 |

将最小化Vim中的当前窗口。