在难以到达Control,Alt和Esc时快速键入


12

我是Emacs的新手,正在尝试内置教程。在学习了基础知识之后,我发现很难触及Ctrland AltEsckey。我试图输入更快,但是由于所有命令都需要这些键,因此我根本无法快速输入。我进行了搜索,但似乎没人在抱怨这些键。

我已经知道您可以交换CtrlCaps Lock键,但是我不愿意这样做,因为我听说不推荐这样做。

如何使键入命令更容易?


7
几年前,我已经将Caps Lock映射为另一个Ctrl键,即使不使用emacs,我也对此感到完全满意。将其直接放在主行中要好得多,以至于我不知道谁会推荐它。
Ineu 2015年

1
一个反对的说法是,大概这样做的人(像我一样!)总是使用左手的小指和拇指按下修饰键。一种更平衡的方法是同时使用左右ctrl和alt键,这样一只手可以敲击修改器,而另一只手则击中目标键。但是我已经有多年的大写记忆,使用ctrl作为大写锁定,并且对此感到满意。
glucas 2015年

1
您不需要使用Ctrl和Alt进行常规的“键入”。使用这些修饰符的键绑定将帮助您导航文本,杀死(剪切),猛拉(粘贴),打开文件以及更多其他功能。除了Vi以外,我想您会发现所有文本编辑器都将要求您对这些类型的函数使用修饰键,否则将使用鼠标。当您说“快速”时,您的参照系是什么?比起什么快?(作为旁注:我喜欢将Caps Lock映射到Ctrl,并将其推荐给任何人。)
nispio 2015年

2
这里是指向相同/相关线程的链接,标题为避免获取“ Emacs Pinky”的最佳方法是什么?stackoverflow.com/questions/52492/… 该主题可以追溯到六(6)年,拥有12940个视图和31个不同的答案。
法律名单

1
欢迎使用Stack Exchange。我将您的问题改写为操作问题而不是投票问题,因为Stack Exchange不会进行投票问题
吉尔(Gilles)'所以

Answers:


22

这是一个很难回答的问题,但有几点想法:

尝试使用默认键绑定一段时间,因为起初Emacs肯定会感到很奇怪。我不建议进行重大配置更改,直到您更好地了解什么对您有用以及什么对您不起作用。

您可以在caps-lock vs. ctrl参数的两侧找到Emacs用户。我个人很长时间以来一直使用大写锁定作为ctrl键,并且发现它非常方便。我用我的左手对所有组合键:通常我的小指Caps LockC-)和Shift,和我的拇指AltM-)。我已经做了多年了,对此感到满意。我确实能用两只手敲击修饰键,但那并不是我学到的。

有些模式不太依赖修饰键。如果您喜欢Vim样式的模式编辑,则可以尝试Evil或更像Emacs的God-mode。但是我仍然建议您花一些时间使用默认值。

随着您对Emacs的更加熟悉并了解最有用的命令和模式,然后就可以开始修改按键绑定了。功能键可以用作前缀,以节省一些修饰符,尽管您必须使用它们。有诸如key-chord之类的软件包,可让您将重复的键(如jj)或键和弦(如jk)绑定到命令。还有诸如smartrep之类的功能,使您可以在某些初始命令之后使用单个键继续执行命令,这可以避免必须按住某些修饰键组合。但是设置这些类型的程序包需要知道要重新绑定哪些命令,这首先需要一定的经验。


一周前,我切换了大写锁定以进行控制,我对执行此操作的人有一个疑问:您是仅使用小指或无名指来敲击大写锁定?我发现,通常在编写代码时,我会用小指打它,但是当我不积极编写代码时(例如,在浏览代码时),我会用无名指,因为它更舒适。
MonanaeurBanana

我想我总是用我的小指-不管用什么!
glucas

我使用修饰符的方式与您使用修饰符的方式基本相同,另外,alt gr当我需要从布局中写入带重音符号的字符时,还可以使用右手拇指按下键。我确实并不需要经常使用它,但是值得一提的是,这种方法可以很好地扩展到依赖于该键的布局。
DoMiNeLa10

10

我为圣诞节准备了Kinesis键盘。我不会发布链接,以免使其成为广告。具有类似质量的键盘也可以。

在此之前,我有一个Steelseries键盘,还有其他Ctrl映射到的键盘Caps Lock。我需要学习的(用旧键盘)的重要事情是:

  • M-x两个手。我可以Ctrl在笔记本电脑键盘上找到右键,但在旧台式机上却无法找到。如果达到了它是可行的,你应该学会按C-xC-rC-sC-aC-eC-c等与双手了。
  • Shift尽可能使用正确的权限。
  • 如果您坚持使用直键盘,那么您就必须训练小指!与钢琴演奏五指练习相同。
  • 不要使用HomePagupPagedownEnd以及箭头凯斯。
  • 某些命令可能具有替代的键绑定,键绑定可能更长,但更容易按下(需要同时按下的键更少)。
  • 如果您决定尝试使用符合人体工程学的键盘,则必须重新映射一下,而不是训练小指,而必须训练自己的拇指。

1
支持“双手”提示,这是您很少看到的提示。我经常C-x C-f只用左手做,这确实开始伤害我的左小指。相反,将右手食指放在右控件上,然后左手食指击中x,f,效果会更好。
robru 2015年

说到钢琴,您可以尝试用拇指按修改器(例如,当您跨过弹奏音阶时)。例如:拇指向下按Ctrl,滚动手臂,然后x用食指按。您无需放松紧紧地握住手,而是可以放松并使用大臂肌肉。这并非对所有连击都有效,但您可以尝试使用它,尤其是对左下角的C-a C-c C-d C-s C-x“紧缩节”。
格雷格·亨德肖特

4

第1步,安装邪恶模式(http://www.emacswiki.org/emacs/Evil)。它使用vim键绑定,并提供高级vim功能(如文本对象),因此您键入的Ctrl,Alt少得多

第2步,使用evil-leader(https://github.com/cofi/evil-leader),先按Leader键(我将其映射为“,”),然后键入任意键的组合来触发命令。请充分利用它,您将不再需要Ctrl和Alt,例如,我使用“,mx”代替Mx

步骤3,安装evil-escape(https://github.com/syl20bnr/evil-escape),然后按“ kj”以模拟“ Cg”和“ ESC”

该解决方案可在任何终端BTW中使用。

一个很好的例子是spacemacs https://github.com/syl20bnr/spacemacs(但其中SPACE键用作引导键)


2

我使用了Dvorak布局,并且发现它与Emacs默认键绑定非常兼容。 C-n在主行上,C-p可以用食指而不是小指按下。 C-u(前缀键)也位于主行上。

我在所有键盘上交换了Caps Lock和Ctrl键,因为我发现键入某些组合键更容易。我还绑定M-x了菜单键(空格键的右侧),因为与左键Alt和相比,击键更容易x

除此之外,我确实god-mode使更长的编辑会话更舒适。我发现Emacs密钥不会成为障碍,我主要使用默认值。

像@glucas一样,我将左小指用作Ctrl,将左手拇指用作左Alt键。在真正符合人体工程学的键盘上,我将左空格键绑定到了Alt上,这使它比普通键盘上的显示更加轻松。

如果您担心通过交换Ctrl和Caps Lock来使您的左手压力过大,您甚至可以将Ctrl绑定到Return键。详情请参阅这篇文章:http : //emacsredux.com/blog/2013/11/12/a-crazy-productivity-boost-remap-return-to-control/


1

TL; DR:确保不难找到重要的密钥。

我第二次回答有关Kinesis的wvxvw回答,以预防“ Emacs Pinky”。我已经使用我14年了,所以现在可以肯定,投资已经收回了。在Kinesis上,我将底部的行映射到修饰符(s-H-C-M/ M-C-H-s),并Mode_switch用拇指键访问“嵌入式箭头键”。此设置几乎没有什么可期望的。

有时还是需要或选择在便携式计算机上键入内容,并且我进行了类似的设置,将数字行重新映射到修饰符,然后将数字符号放在功能键上(有关更多信息,请参见.xmodmap.xkb文件)。细节)。再次,这意味着我的手腕几乎没有扭转,而小指完全没有压力。

最近几个月,我注意到我在笔记本电脑ControlMode_switch笔记本电脑上使用的手指有些压力。当您注意到压力时,尝试减轻压力始终是一个好主意。我玩过粘滞键,但是发现当前对它们的支持还有很多不足之处。可惜,因为它们是一个好主意。

但是,我在上帝模式下还是有些运气的,这就像一个强大的粘Control键,但仅限于Emacs。在使用Evil模式时,我发现定义一个相似的粘贴Meta键很简单-或者可以定义其他修改器或嵌入式层。evil-dvorak是一项相关的优化,尽管所选的键盘映射有些个人化。

总结与人机相关的主要定制,这些定制帮助我在相当高的程度上“生活在emacs中”:

〜10年:Kinesis,dvorak,Xmodmap / Xkb,Ratpoison(重要:将RP的转义设置为可以触及的范围,C-t是默认设置,但可以轻松进行改进)

大约1年:五趾龙(带有Emacs绑定),上帝模式+邪恶模式(一个邪恶的联盟),并在一天的一部分时间切换到站立的桌子。另外,Helm可用于快速输入命令。


0

您会注意到,这是长期emacs用户中一个非常棘手的主题。正如此处其他答复所建议的那样,请尝试一下默认值,以找出对于您在特定键盘上键入的语言而言,哪些键序列对您特别困难。然后实现一两个关键键的重映射,例如Ctrl,Meta和Escape。根据笔记本电脑和操作系统的不同,您可能有几种重新映射的方法。例如,在Mac OS X上,键盘偏好设置面板以及Karabiner足以找到可行的按键重映射。一次尝试一种解决方案,看它是否满足您的需求。可能需要一些时间才能找到适合您的需求。长期使用的用户会建议避免使手指变小。谨慎。


0

此问题并非特定于Emacs。可以通过键绑定控制的其他程序的用户也会受到影响。Emacs在更大程度上拥有它,因为它具有更多命令。根本原因是我们所需的所有命令没有足够的键。如果您对理论不感兴趣,请跳至最后一段。

一个明显的解决方案是为Emacs命令添加一个额外的键盘。这样您将总共拥有200个密钥。然后,您将输入得更慢。实际上,标准键盘上的100个按键对于触摸键入来说实在太多了。我估计,一个人只要不动手腕就可以达到22个键。

要快速键入,请在手指下移动修饰键。然后没有足够的键来输入拉丁字母。例如,“ j”是修饰键,先按“ j”再按“ d”会产生字母“ j”。如果您不希望每个字母都按下修饰键,则可以使用模式和模式编辑器。例如,在插入模式下,“ j”产生字母“ j”;在命令模式下,“ j”执行切割(杀死);有用于切换模式的键。(这些示例未在任何编辑器中实现,它们只是示例。)

Vim是著名的模态编辑器。上面已经提到了。由于Emacs是可编程的,因此有一个称为“上帝模式”的模态次要模式。尽管可以改进,但可以满足需要。在上帝模式下,您不需要为每个Emacs命令学习新的键绑定,但是,您需要将每个键绑定转换为头脑中的一系列键。例如,“ gw”产生绑定到“ M-w”的命令。


0

简而言之,用拇指将其全部按下。您可以在没有Kinesis的情况下进行操作。

现在的细节。购买例如日语键盘:

日文键盘
(来源:owltech.co.jp

并使用底部一行例如AltShiftCtrlShiftAltEscBSSpaceRetTab,中间一行是物理空格键。这意味着,如果您单独按空格,则为空白,但与他人按下时,则为Ctrl。与Alt / Esc,Shift / BS等相同。

有关如何实际达到此目的,请参见避免获取“ Emacs Pinky”的最佳方法是什么?在stackoverflow.com中。(这个问题已经由Gilles提及)

您可以在ebay.com或amazon.com上购买日文键盘。amazon.co.jp也提供英语。


0

可以使用左手拇指轻松按下左键alt(即meta在emacs中),并且可以将所有常用功能(例如,光标移动)重新绑定到基于meta键的快捷方式,而不是原始的基于ctrl键的快捷方式。我在init.el文件中执行此操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.