快捷键怎么绑定最规范

我在设置快捷键的时候,常常不知道应该把函数绑定到那个快捷键。害怕是否冲突,是否会覆盖另一个mode的快捷等等。请问怎么有什么指导性思路,什么类型的功能应该绑定什么键。如:C-X开头的,C-c 开头的等等。还有就是emacs的键分很多 local , global ,minor ,key-translation请问怎么使用最好啦。 有什么插件可以分类列出绑定的键,或者是overview. 感谢您的帮助。

1 个赞

官方說法:Key Binding Conventions (GNU Emacs Lisp Reference Manual)

然而自己用的話怎麼爽怎麼來就行了。幾百年用不了一次的鍵留着亦無用。

mode specific的就绑定到对应的local map,希望全局有效的就用global map。

如果你只用GUI,可以绑定到C-digit M-digit。一般来说emacs key很少用digit key。另外绑定C-S-digit也是不错的。

指导性思路就是你不需要那么多快捷键,不要被大配置里一堆堆的key bindings固定了思维。常用的再绑,其他都可以用M-x调用。

Don’t bind C-c prefix key是对于插件来说的。用户是随便绑的

1 个赞

关于你说的不同层面的 keymap,这篇文章讲得很好。官方的手册在这里,可做参考。关于什么功能应该往哪儿绑,照本来的设计只有 C-c 后面跟一个字母的是留给用户的,但是显然不太够用。个人的做法是,ctrl,alt 或者 ctrl+alt 再加一个字母的,这种 keychord 默认绑的命令不少没什么用,可以把它挪到自己常用的命令上;其余次常用的,仿照 spacemacs 那样,用一个 leader 键(我用的 alt+space),下面再来两到三层,比如 M-spc b k 就是 buffer - kill。个人用general.el来绑定所有的快捷键。

2 个赞

我提供点 Centaur Emacs 中的思路:尽量使用官方推荐的键位,插件也是如此,如有冲突考虑更换;mode 相关的只放到 local map 中;counsel 相关的放到C-c c下,其他的用counsel-M-x (M-x) 模糊查找并调用;更复杂的用 hydra;频繁调用的可以考虑绑定到 F1-F12(比如 F9 - term)。

1 个赞

我使用的就是你的配置,是在你的配置上修改的。比如:yodao-voice-at-point 这些功能需要邦定吗

看你自己啦,如果使用频率高就考虑绑定。

1 个赞

绑哪些:用keyfreq统计

怎么绑:用general.el