Vim:用ctrl和shift之外的键映射“按住”键盘组合? (任意修饰符)

时间:2013-01-24 22:15:56

标签: vim

我可以创建一个映射表示j(hold down)+ l,这与快速键入j然后l之后是否相继?

这与vim mapping normal keys like shift有点重复,但我在Windows上,所以没有xmodmap。

2 个答案:

答案 0 :(得分:1)

不,你不能用简单的映射在Vim中做到这一点。您可以按j然后l,而不是两者。

But there's a plugin for that.

答案 1 :(得分:0)

我已经能够用AutoHotkey做我想做的事了。 我从键盘上撕下了空格键,现在我用拇指可以访问很多修饰符(而不仅仅是空格和AltGr)。这是我的ahk脚本。它将所有字母向上移动一行并将v映射到空格,b映射到退格键并输入n。请注意,我只是开始研究它并且它是为瑞士德国布局而制作的。

#If WinActive("ahk_class Notepad")
v::space
variable := ""
n:: variable .= ""


#If GetKeyState("n", "P") == 0 && WinActive("ahk_class Notepad")

b::Backspace
1::q
2::w
3::e
4::r
5::t
6::z
7::u
8::i
9::o
0::p
q::a
w::s
e::d
r::f
t::g
z::h
u::j
i::k
o::l
p::SC027
a::y
s::x
d::c
f::v
g::b
h::n
j::m
k::,
l::.
SC027::-
return 
#If

#If GetKeyState("n", "P") == 1 && WinActive("ahk_class Notepad")

b::Enter
k::;
1::+q
2::+w
3::+e
4::+r
5::+t
6::+z
7::+u
8::+i
9::+o
0::+p
q::+a
w::+s
e::+d
r::+f
t::+g
z::+h
u::+j
i::+k
o::+l
p::+SC027
a::+y
s::+x
d::+c
f::+v
g::+b
h::+n
j::+m
l:::
SC027::+-

return 
#If