我在VIM中虔诚地使用水平和垂直窗口分割,直到最近,我很享受两个命令的安慰,以有效地隐藏(或最小化)我的水平分割.我设置它们将以下行添加到我的.vimrc
文件中:
set winminheight=0
map <C-J> <C-W>j<C-W>_
map <C-K> <C-W>k<C-W>_
Run Code Online (Sandbox Code Playgroud)
通过向上或向下击中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>_
Run Code Online (Sandbox Code Playgroud)
该操作类似于利用Control-w-<
和Control-w->
仅将垂直分割完全移动到左侧或写入,而不是一次只移动一行.
有关如何实现这一目标的任何想法?谢谢.
小智 11
首先,您将无法在代码中使用<SC-(shift + control)(见下文).但是你可以使用'mapleader'作为你的"转移",然后像你想的那样使用<Ch>和<Cl>.像这样:
set winminwidth=0
nmap <Leader><C-h> <C-W>h500<C-W>>
nmap <Leader><C-l> <C-W>l500<C-W>>
Run Code Online (Sandbox Code Playgroud)
vim中的常用leader键是逗号和反斜杠:
:let mapleader = ","
Run Code Online (Sandbox Code Playgroud)
但是你会发现这对于要求3次击键来说很烦人,所以你不妨放下控制键击.这样(如果你的领导是逗号)你可以按",h"和",l"去左右分裂:
set winminwidth=0
nmap <Leader>h <C-W>h500<C-W>>
nmap <Leader>l <C-W>l500<C-W>>
" (FTW) :D
Run Code Online (Sandbox Code Playgroud)
...
一个名叫Tony Chapman的人回答了为什么你不能使用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是一样的.这是设计上的,不会改变.