Vim Dvorak keybindings(rebindings :)
虽然我之前玩过,但我终于开始经常使用Dvorak(简体) 。 几年来,我一直和Vim保持稳定的关系,而且我正试图找出重新映射键绑定以适应我新发现的Dvorak技能的最佳方法。
你如何将Vim的关键绑定重新映射到Dvorak的最佳作品?
鼓励解释!
我使用一个更常见的build议键盘绑定 :
Dvorak it! no dh no hj no tk no nl no s : no S : no jd no ln no LN Added benefits no - $ no _ ^ no N <Cw><Cw> no T <Cw><Cr> no H 8<Down> no T 8<Up> no D <Cw><Cr>
移动键保持在同一位置。 其他变化:
- 删除'd' – >垃圾'j'
- Next'n' – >看'l'
- 前面的'N' – >回头看'L'
也有一些熟悉的变化,'/'S'可以用来访问命令模式(旧的位置,仍然有效)。
增加的好处
- 行'$'的结尾 – 同 – ' – '
- 行'^'的开始 – 同样 – '_'
- 上移8'T'
- 向下移动8'H'
- 下一个窗口
<Cw><Cw>
-also-'N' - 交换窗口
<Cw><Cr>
-also-'D'
-亚当
我没有发现我需要为Dvorak重新映射键 – 当我切换布局时,我很快习惯了使用默认的键盘绑定。
作为奖励,这意味着当我在Dvorak和Qwerty之间切换时,我不必记得两个不同的组合键。 键盘布局的差异就足够了,我不期待键在相同的位置。
我只使用标准的QWERTY命令和插入模式使用dvorak
这里是如何设置它
有点晚,但我使用以下内容:
" dvorak remap noremap hh noremap tj noremap nk noremap sl noremap ln noremap LN " easy access to beginning and end of line noremap - $ noremap _ ^
这基本上做到以下几点:
- 左下 – 右 – 全部在主行的默认手指位置下(即,不像默认的QWERTY Vim映射那样移动一个)
- l / L用于下一个/上一个search结果
- 使用 – / _到达一行的结尾/开始
这似乎为我工作…
我的重写:
noremap hh noremap tj noremap nk noremap sl noremap jt noremap ln noremap ks noremap JT noremap LN noremap KS noremap TJ noremap NL noremap SK
笔记:
- 在qwert中,vi必须使用'h',因为vi不想使用';' 一个非信件。 但在dvroak中,我们有's',所以为什么不利用这个优势呢?
- vi使用Caps进行相关操作。 这是一个很好的devise理念。 所以我试图符合这个。
含义:
n (Next) -> l (Left) -- "What's left?" resembles "What's next?" s (Substitute) -> k (Kill then insert) t (jump Till) -> j (Jump till) N, S, T are similar. J (Join lines) -> T (make lines Together) K (Keyword) -> S (Subject) L[count] (Line count) -> N (line Number)
顺便说一句L本身就是最后一行,N是最后一个字母。 (感谢tenzu指出这一点。)
PS我已经使用了这些rebindings一段时间。 现在我没有在vim中使用它。 我只是使用默认的。
Vim附带了一个广泛的Dvorak脚本,但不幸的是它不是直接可用的,因为该文件包含几行指令和另一个脚本来解除其影响。 要阅读它,请发出以下命令:
:e $VIMRUNTIME/macros/dvorak
你可以用它来让Vim只在插入模式下使用Dvorak:
:set keymap=dvorak
这样所有的命令仍然在QWERTY中,但是你input的所有东西都在Dvorak中。
注意事项:好吧,几乎所有的东西。 插入模式,search模式和replace模式都将是dvorak,但是ex命令不会。 这意味着你不必重新学习:wq
,但是你需要在QWERTY中键入:%s/foo/bar/gc
。
如果你只想移动某些命令,这也无济于事,但是我发现,在我的脑海里,“向前走一个字”必然会“向左无名指向上移动”,而不是“问打字处在哪里” w'然后按下它,“这使得这个方法对我来说更容易。