除了原生键位外,emacs有非模态编辑的编辑方式设计吗?

由于我习惯掌压ctrl而不是映射到caps lock,我在笔记本没有外接键盘的情况下用emacs coding的效率非常低。模态编辑我以前用过一段时间,但是感觉coding时要频繁切换模式太麻烦了。emacs里有什么适合在笔记本上使用的非模态编辑的包吗?

将esc映射到capslock上能大幅度提升模态编辑的效率。非模态编辑的方案好像没有特别好的不使用ctrl的方案。模态编辑还可以引入god-mode这种用一个按键来表示按ctrl的情况,我现在在使用meow,meow里的keypad模式也是,你可以用 space x space b 来替代 C-x b,用space x e 来替代 C-x C-e

1 个赞

你是不是觉得ctrl不太好按住,试试

笔记本上用shift非常舒服,包是hydra+自定义。就是大写字母的输入有点问题,我当时这样设计是因为那时主要使用中文,较少输入大写字母

其实切换模式并不会慢多少,因为如果不是同一手指按不同位置的两个键的话,基本上想按多快就可以多快。

比方说,没有模式编辑的情况下,在打完一个字母之后,如果需要执行一个命令,不管是移动到其它地方还是剪贴复制,都需要至少按一个带有修饰键的组合键。而在有模式编辑的情况下,则需要退出插入模式,通常是按 esc。从按键上来说,是一样的。Ctrl N 并不会比 ESC N 效率高。

理论上来说,效率最高的方式,是单一修饰键长按,比如 Ctrl 按住 + ABCXYZ 完成所有非编辑的操作,同时 ABCXYZ 都是一侧手的按键,完全不存在别扭的按法。但是目前好像没有方案可以做到,因为有效的键位太少,摆不下那么多命令。

1 个赞

让我想到李杀的视频 The Most Efficient Emacs Workflow, more efficient than vim - YouTube 他用1.5把键盘来操作,其中0.5把键盘用于放置各种常用功能

如果 jk 当作esc键使用的话,非常顺手。因为插入模式文本写完了以后右手食指中指连按两下就进入 normal 模式了。jk 就在右手的正中间的位置,并不需要移动手,而且还是食指和中指两个比较有力的手指连按两个键,十分顺畅,一点阻塞感都没有。形成肌肉记忆以后一点都不会觉得切换模式麻烦。

用什么方式退出插入模式其实并不是重点。