2009-08-11 102 views
8

我在VIM中使用水平和垂直窗口拆分,直到最近,我都喜歡兩條命令的安慰以有效隱藏(或最小化)我的水平拆分。我設置它們添加下面的幾行我.vimrc文件:「最小化」垂直VIM窗口拆分

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->,只有移動垂直分割完全向左或寫,一次不只是一條線。

如何做到這一點任何想法?謝謝。

回答

11

首先,您將無法在您的代碼中使用< S-C-(shift + control)(請參閱下文)。但是你可以使用'mapleader'作爲你的「shift」,然後像你想要的那樣使用C-h>和< C-l>。是這樣的:在VIM

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

的共同領導者關鍵是逗號和反斜槓:

: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 

...

一個傢伙命名託尼·查普曼answers爲什麼你不能使用控制+ SHIFT:

的Vim根據ASCII其Ctrl+printable_key 組合映射。這 意味着「Ctrl+lowercase letter」是 相同相應 「Ctrl+uppercase letter」並且 Ctrl+<key>(其中<key>是可印刷 密鑰)只被定義時<key>是 範圍0x40-0x5F,小寫字母 ,或問號。這也 意味着Ctrl-[Esc一樣, Ctrl-M相同EnterCtrl-I是 一樣Tab

所以,是Ctrl-sCtrl-S(即Ctrl-sCtrl-Shift-s)是相同的,以 的Vim。這是設計,並不是 會發生變化。

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