【问题标题】:Colemak keyboards with Emacs or VIM [closed]带有 Emacs 或 VIM 的 Colemak 键盘 [关闭]
【发布时间】:2010-09-20 05:01:30
【问题描述】:

我一直在我的 TODO 清单上划掉一些东西。我最近拿起了Colemak。接下来我想学习 Vim 或 Emacs。我倾向于 Vim,但它的好处之一是坚持本垒打。有了Colemak,主排已经改变。我意识到我可以重新映射键,但是将功能分配给不同的字母对我来说并不是很有吸引力(如果字母与其功能之间存在任何关系。我知道运动不相关,但我不确定其余的.)

我不想发表一篇关于文本编辑器的争论文章,而是从 Colemak(或 Dvorak)用户那里收到关于替代键映射和这两个编辑器的 cmets。

谢谢

【问题讨论】:

  • 今天早上之前我从未听说过这种布局。让我好奇有多少种键盘布局
  • 据我所知,Qwerty、Dvorak 和 Colemak 是唯一真正重要的人。
  • 我很想知道你为什么选择 Colemak 而不是 Dvorak。既然您已经在重新映射您的大脑,为什么不一直走下去并获得 Dvorak 的全面人体工程学支持呢?当您所做的大部分工作都是键入时,我发现 Colemak 关于更轻松的复制粘贴类型操作的论点有点弱。
  • @Tim:我听说 Colemak 具有与 Dvorak 相同的人体工程学支持,但还包括更简单的复制/粘贴/等快捷方式。它也有更广泛的追随者和实施。
  • @Chetan:我在研究的时候没有读到,但是做一些简短的谷歌搜索似乎表明你在很大程度上是正确的,特别是如果你是一名程序员。似乎流行的轶事是,如果您仍在使用 QWERTY 并且您是一名程序员,请切换到 Colemak。如果您仍在使用 QWERTY 并且主要输入英语,请切换到 Dvorak。如果您已经切换到任何一个,请不要再次切换。如果你有实际的研究,你可以指出我很想得到它的链接。

标签: keyboard editor keymapping colemak


【解决方案1】:

我正在使用与 Graham 类似的设置(上、下、左、右,是 hkjl (Qwerty hnyu)),但不是使用 noremap,而是在我的 .vimrc 中使用 langmap 重新映射:

set langmap=hk,jh,kj

这具有更改使用这些移动键的其他命令(例如 g、z 和 Cw)的额外优势,而无需手动重新定义所有这些命令,即 C-wh 向上移动一个窗口,C-wk 向下移动一个窗口等。

【讨论】:

  • 这太棒了,谢谢!只是不习惯使用 Colemak 默认情况下移动键的映射方式,上下颠倒的感觉呢!
  • 重新映射的好方法。但是,我已经被@asgeo1 的回答所说服,即根本不重新映射。现在在 Colemak 上使用标有“y”、“n”、“u”和“h”的键盘键来表示下/上/右/左(对应于字母 j、k、l、h)感觉很自然,而无需为我通过 SSH 连接的每台服务器重新配置 Vim。
  • 我可以看到这将是多么有利,此时每当我 ssh 时,我必须记住调整回默认方式。感觉就像在模拟飞行 - 向前推动下降,向后拉上升!
  • 我刚刚发现这实际上可以巧妙地破坏 vim 插件(在 paredit.vim 中注意到)使用 j/k/h 来移动其功能,所以我将尝试调整回到“飞行模拟”模式,根本不重新映射。
【解决方案2】:

我最近切换到 Colemak,并且我还使用 Vim 作为我的主要编辑器。

我可以告诉你,没有必要重新映射移动键 - 或任何其他 Vim 键。你的大脑会很快学会移动键的新位置。对于助记键,绝对不需要重新映射 - 您希望将助记符的含义保留在键后面。

如果您重新映射 Vim 移动键,您将处于无法以任何实际效率操作普通 Vim 的不幸位置 - 例如,如果您需要通过 SSH 连接到服务器。我认为,对于大多数人来说,这比使用没有 Colemak 的计算机更常见。

同样,您有一天可能会得到一些 Vim 插件,这些插件会与您的重新映射发生冲突,或者您有一天会阅读 Vim 提示,了解一项您现在无法使用的功能,因为您已经重新映射了一些东西。

这对你来说真的很痛苦,所以我不会为任何重新映射而烦恼。

【讨论】:

  • 不幸的是,你是对的。我已经重新映射了键绑定,并且我经常遇到所有这些问题。这真是令人沮丧。
  • 关于重新映射不可移植的问题可能是正确的。但是,如果 vim 中最常用的键是对角线移动,那会不会对手造成压力?使用 hjkl 的全部要点(非历史性)是它比箭头键更容易到达。
  • @andho - 这对手来说不是很大的压力。右手食指负责所有 4 个键 (hjkl)。无论如何,那根手指是最强壮的,也最有能力伸到上面或下面。自从我写下这个答案以来,我已经在 Colemak 上使用 Vim 12 年了,并且没有任何关于 hjkl 的手拉伤问题。无论如何,大多数时候最好使用其他导航方式,即ft等。其他unix程序,即。 less 也使用 j/k 上下 - 最好保持一致。 IMO 重新映射不是一个好主意
【解决方案3】:

很高兴看到另一个 Colemak 用户 :)

对于 Emacs,确实不需要重新映射,因为最初的“快捷方式”并不是为了彼此靠近而设计的。如果有的话,在 Colemak 上使用 Emacs 会比在 Qwerty 上更舒服(至少我是这样)。

在 Vim 中要复杂得多,因为 hjkl 会完全混乱。话又说回来,我一直觉得 hlkl 坏了,应该是 jkj;或ijkl,所以重新映射可能是一件好事。以下是 Colemak 论坛上有关 Colemak+Vim 的更广泛讨论:http://forum.colemak.com/viewtopic.php?id=50

【讨论】:

【解决方案4】:

这在你的 .vimrc 中会改变 Colemak 的光标移动而不影响其他 vim 映射,因为它只影响 h/j/k 字母。

  • up = h(在键盘上标记为“h”)
  • down = k(在键盘上标记为“n”)
  • left = j(在键盘上标记为“y”)
  • right = l(在键盘上标记为“u”)

这是映射:

noremap h k
noremap j h
noremap k j

【讨论】:

  • 我非常喜欢这个解决方案。不过,我只是希望默认情况下它会更好。我与 dvorak/qwerty 用户进行了很多结对编程,所以我需要一种方法来打开和关闭它以使其实用,不过
  • @bjeanes,你可以用键盘快捷键来交换键盘快捷键,例如:nnoremap <F1> <Esc>:nnoremap h k<CR>:noremap j h<CR>:noremap k j<CR>
    nnoremap <F2> <Esc>:nnoremap h h<CR>:noremap j j<CR>:noremap k k<CR>
    把它添加到你的 ~/.vimrc 中,然后 F1/F2 将在 qwerty/colemak 移动键之间交换。如果您的意思是交换键盘布局,而不仅仅是 Vim 映射,那么也应该有一个(依赖于操作系统的)解决方案;-)
【解决方案5】:

我已经和 Dvorak 一起跑了很多年了(大概是 4 年左右)。我还使用 vim 的所有标准原因,您必须使用 vim 之类的东西(更少,具有自己的编辑器(visudo 等)的配置编辑等)。 Emacs 实际上是我学习的第一个 Unix 程序(我是 Apple 世界的本地人),在被 Yegge 漫不经心地批评它有多棒之后,我现在把它捡回来了。

从严格的键盘布局立场来看,我会说 Emacs 可能是这里的赢家,因为不需要重新映射。除了将 Caps-Lock 键换成 Control 键(实际上应该这样做,Caps-Lock 键就像每个键盘的高中吻痕一样),我想说每个键绑定都更适合与 Dvorak 一起使用而不是与QWERTY。我特别发现经常使用的 C-x 和 M-x 绑定非常打字很舒服。

然而,vim 真的没什么大不了的。 “j”和“k”仍然紧挨着。 'h' 和 'l' 至少在一方面很方便,并且位于主行之上。除此之外,它只是重新映射您脑海中的键,以便在编辑器中执行您希望发生的事情。我个人认为没有任何理由重新映射任何东西,而且我对 RSI 的风险很高(因此转向 Dvorak)。对于像 vim 和 emacs 这样的以键盘为中心的应用程序,我可以舒适地原封不动地使用它们这一事实应该是相当令人印象深刻的。 :)

祝你好运!

【讨论】:

    【解决方案6】:

    我正在使用 Ryan Heise 的 Vim 解决方案:

    我想出了保留物理的“NEST”导航绑定 上/下导航的位置 键(左/右不同但 仍然在首页):

    N = 下 E = 上 S = 左 T = 右

    设置的命令是 在我的 Colemak 页面底部:

    http://www.ryanheise.com/colemak/

    大多数情况下,这些绑定允许您 使用常规的 vim 备忘单来学习 命令,除了导航 当然。

    在 N-E-S-T 中分配的 4 个键中, “N”(“n”个搜索结果)和“E” (移动当前单词的“e”nd)是 频繁但狼吞虎咽。我重新映射 他们回到原来的 QWERTY 位置,所以他们是仅有的两个 没有它们的命令 原始逻辑名称。

    取自https://forum.colemak.com/topic/50-colemak-vim/p2/#p2514

    【讨论】:

      【解决方案7】:

      我是 vim+qwerty 用户(我尝试学习 dvorak,但事实证明打字速度不是我的速率限制因素,而且我没有 RSI 问题)。只有 vi(m) 中的 hjkl 光标移动键是位置相关的,其他的都是助记符。我在 Colemak 布局上看到,h/l 模糊地向左/向右,但 j/k 向下/向上。尽管如此,我怀疑这将是一个重大的绊脚石。你可以改用方向键,或者继续使用 hjkl 来处理有趣的位置。

      我不会尝试根据键盘布局重新映射 vim 功能。这对我来说似乎有太多潜在的困惑。

      【讨论】:

        【解决方案8】:

        这里有一个previous post,应该可以帮到你。那里有一些讨论,一些用户不重新映射。有些人会。

        实际上,我打算在周末重新映射。在过去的一年里,我一直使用默认映射,使用 Dvorak。

        【讨论】:

          猜你喜欢
          • 2014-05-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-03-09
          • 2011-05-24
          • 1970-01-01
          相关资源
          最近更新 更多