【问题标题】:Vim Dvorak keybindings (rebindings :)Vim Dvorak 键绑定(重新绑定 :)
【发布时间】:2010-09-14 23:31:26
【问题描述】:

虽然我以前玩过它,但我终于开始定期使用Dvorak (Simplified)。几年来,我一直与 Vim 保持着稳定的关系,我正在尝试找出重新映射键绑定以适应我新发现的 Dvorak 技能的最佳方法。

如何重新映射 Vim 的键绑定以最好地使用 Dvorak?

鼓励解释!

【问题讨论】:

    标签: vim keyboard-shortcuts dvorak


    【解决方案1】:

    我使用了更多common recommended keybindings之一:

    Dvorak it!
    no d h
    no h j
    no t k
    no n l
    no s :
    no S :
    no j d
    no l n
    no L N
    Added benefits
    no - $
    no _ ^
    no N <C-w><C-w>
    no T <C-w><C-r>
    no H 8<Down>
    no T 8<Up>
    no D <C-w><C-r>
    

    移动键保持在同一位置。其他变化:

    • 删除'd' -> 垃圾'j'
    • 下一个'n' -> 看'l'
    • 上一个'N' -> 回头看'L'

    还有一些熟悉的变化,'s'/'S'可以用来访问命令模式(:的旧位置,仍然有效)。

    额外的好处

    • 行尾'$' -also- '-'
    • '^' 行的开头 -also- '_'
    • 上移 8 个“T”
    • 向下移动 8 'H'
    • 下一个窗口&lt;C-w&gt;&lt;C-w&gt; -also- 'N'
    • 交换窗口&lt;C-w&gt;&lt;C-r&gt; -also- 'D'

    -亚当

    【讨论】:

    • 太好了,谢谢! (请注意,在帖子中,HTML 标签丢失。请务必点击提供的链接)
    • 感谢您的注意 - 我已重新格式化它以便它正确显示在这里。
    【解决方案2】:

    我发现我不需要为 Dvorak 重新映射键 - 我很快就习惯了在切换布局时使用默认键绑定。

    作为奖励,这意味着当我在 Dvorak 和 Qwerty 之间切换时,我不必记住两个不同的组合键。键盘布局的差异足以让我不希望按键位于同一位置。

    【讨论】:

      【解决方案3】:

      有点晚了,但我使用以下:

      " dvorak remap
      noremap h h
      noremap t j
      noremap n k
      noremap s l
      noremap l n
      noremap L N
      
      " easy access to beginning and end of line
      noremap - $
      noremap _ ^
      

      这基本上做了以下事情:

      • left-down-up-right 都位于主行上的默认手指位置下方(即没有像默认 QWERTY Vim 映射中那样移动一个)
      • l/L 用于下一个/上一个搜索结果
      • 使用 -/_ 到达一行的结尾/开头

      这似乎对我有用...

      【讨论】:

      • 事不宜迟,全是长尾问题。 :-)
      • 谢谢,您的重映射效果很好,我将 n 和 N 分配给 j 和 k,因为在第一次重映射后这些键是空闲的,并且键在一个很好的地方彼此相邻,除此之外无需伸手去拿换档键。 :-)
      【解决方案4】:

      我只是将标准的 qwerty 用于命令,将 dvorak 用于插入模式

      这里是how to set it up

      【讨论】:

        【解决方案5】:

        我的重新绑定:

        noremap h h
        noremap t j
        noremap n k
        noremap s l
        noremap j t
        noremap l n
        noremap k s
        noremap J T
        noremap L N
        noremap K S
        noremap T J
        noremap N L
        noremap S K
        

        注意事项:

        • 在 qwert 中,vi 必须使用 'h',因为 vi 不想使用 ';'一个非字母。但 在 dvroak 中,我们有 's',那么为什么不利用这个优势呢?
        • vi 使用 Caps 进行相关操作。这是一个很好的设计理念。所以我尝试 符合这一点。

        含义:

        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 是 fin 的最后一个字母。 (感谢tenzu指出这一点。)

        附:我已经使用这些重新绑定有一段时间了。现在我不在 vim 中使用它。我只是使用默认的。

        【讨论】:

          【解决方案6】:

          Vim 附带了一个扩展的 Dvorak 脚本,但不幸的是它不是直接的 source-able,因为该文件包含几行指令和另一个撤消其效果的脚本。要阅读它,请发出以下命令:

          :e $VIMRUNTIME/macros/dvorak
          

          【讨论】:

          • 这个脚本的问题是它假设你希望键在同一个位置。当真正需要定位的键只是移动键时。
          【解决方案7】:

          你可以用这个have Vim use Dvorak only in insert mode:

          :set keymap=dvorak
          

          这样,所有的命令仍然是 QWERTY,但你输入的所有内容都将是 Dvorak。

          注意事项:嗯,几乎所有内容。插入模式、搜索模式和替换模式都将是 dvorak,但 ex 命令不会。这意味着您不必重新学习:wq,但您需要在QWERTY 中输入:%s/foo/bar/gc

          如果您只想移动某些命令,这将无济于事,但我发现在我的脑海中,“向前移动一个单词”与“左手无名指向上移动”绑定,而不是“询问打字部门在哪里字母 'w' 是然后按下它,”这让我更容易使用这种方法。

          【讨论】:

            猜你喜欢
            • 2012-12-11
            • 1970-01-01
            • 2012-06-05
            • 2015-12-12
            • 2012-12-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多