如何让Vim仅在插入模式下使用Dvorak键位?

12

我希望在使用Vim打字时采用Dvorak键盘布局。然而,我希望所有快捷键保持不变(在命令模式下,表现得像Qwerty键盘)。我尝试过使用以下代码:

set langmap=q',e.,rp,ty,yf,ug,ic,or,pl,[/,]=,aa,so,de,fu,gi,hd,jh,kt,ln,\\;s,'-,z\\;,xq,cj,vk,bx,nb,mm,.v,/z,-[,=],Q\\",W<,E>,RP,TY,YF,UG,IC,OR,PL,{?,}+,AA,SO,DE,FU,GI,HD,JH,KT,LN,:S,"_,Z:,XQ,CJ,VK,BX,NB,MM,<W,>V,?Z      

在插入模式下将我的qwerty键映射到dvorak,但我发现这会干扰一些快捷键。我希望在保持操作系统(Windows 7)上的其余部分键盘映射为qwerty的情况下实现这一点。我如何在Vim中做到这一点?langmap实际上是做什么的?(找不到文档很困难)

如果搜索模式下的键盘是dvorak那就太好了,但这只是额外的奖励。


2
我不确定什么样的情况需要这样做,但我还是会问一下。什么样的情况需要这样做呢? :D - Ry-
@minitech Dvorak针对打字进行了优化,但Vim命令是以Qwerty为基础选择的。两全其美。 :) - Gordon Gustafson
问题到底是什么? - rid
在我的看法中,Vim命令在Dvorak键盘上也非常好用。dw不是很方便,但是dex可以胜任。cw通常可以用ce代替。有些按键在Dvorak键盘上位置更佳,例如x。根据我的经验,重新学习常见的Linux/Windows快捷键,如Ctrl-C、Ctrl-V等,只需要短时间就能流利地使用。 - nrz
在学会Dvorak之后,我才开始使用Vim,但对我来说似乎没有什么特别的地方。HJKL甚至基本上是功能性的,J和K彼此相邻,而H在L的左侧。换句话说,为什么不切换你的机器(或者获取一个Dvorak键盘)呢? - dash-tom-bang
2个回答

9
“我希望在操作系统(Windows 7)的其余部分保持键盘映射为qwerty的情况下完成这个任务。” – 所以只需使用:set keymap=dvorak(在Ubuntu的默认Vim配置中,dvorak.vim位于vim73/keymap/,它也必须可用于Windows)。它实现了您所描述的功能:在插入模式和搜索模式中使用Dvorak方法。

1
我该如何让这个在已经设置为“dvorak”的操作系统上工作?换句话说,每当我打开vim时,我仍然需要从dvorak切换回qwerty。然后,当我退出vim并返回终端时,我仍然必须切换到dvorak。 - Chris

2

可以在以下位置找到有关langmap的文档:

:help langmap

[..] 当您处于插入模式时,字符将直接插入。 当处于命令模式时,'langmap'选项负责将这些特殊字符转换为键的原始含义。[..]

但是,如果您正在使用qwerty键,并且仅想在插入模式下使用dvorak,则可能需要改用keymap。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接