我在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->
,只将垂直拆分完全移动到左侧或写入,而不是一次只移动一行。
关于如何实现这一目标的任何想法?感谢。
答案 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-M
与Enter
相同,Ctrl-I
与Tab
相同。是的,
Ctrl-s
和Ctrl-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中的当前窗口。