如何在emacs中设置新的键盘快捷键?

4

我是emacs的新手,想知道是否有一种方法可以永久地设置新的键绑定以供将来使用。也就是说,我有一组键绑定,我希望在所有未来的emacs会话中使用。

每次退出emacs时,以下命令都会被删除(或遗忘):

M-x global-set-key new key-binding command

如何保存这个键绑定以便将来使用?


如果你在谷歌上搜索“自定义emacs键盘快捷方式”,会有很多指南和有用的示例。 - user48956
3个回答

6

将定义保存到位于您的主目录中的.emacs文件中。

例如,我在那里有以下内容:

(global-set-key "\M-m" blink-matching-open)

3

这在手册中有详细的介绍,您可以参考该链接


OP的问题是Emacs会话之间的设置不持久化。 - Seki
我看了页面中描述的所有绑定代码,但错过了链接到初始化文件的第一行“您可以在初始化文件中指定它们”的内容,而没有过多强调。抱歉。 - Seki

1
上面的一些答案(以及其他地方)对我没有用。首先,在我的emacs 24.3.1中,meta键被称为其他东西,带有GTK+版本3.10.7(在Ubuntu 14.04上)。
我的init.el中存在许多选项都不起作用。
我的init.el中有一些选项不起作用(包括here中的选项):
(a) (global-set-key (kbd "M-<up>") 'comment-region) (b) (global-set-key (kbd "<M-up>") 'comment-region) (c) (global-set-key [(meta up)] 'comment-region) 然后,我发现当我执行M-x describe-key并按下meta键+向上光标箭头时,描述说键是<s-up>。我尝试了这个:
(a) (global-set-key '<s-up>' 'comment-region)

然后我尝试了:

(a) (global-set-key [s-up] 'comment-region)

这是唯一一个在我退出会话后仍能正常工作的。

我认为emacs手册和编辑器快捷键帮助方面有很多需要改进的地方。作为一个将近20年使用emacs的用户,我可以证明这一点。楼主的困惑是合理的。


1
为了避免不必要的麻烦,请始终使用Emacs显示给您的字符串与kbd一起使用。因此,(kbd "<s-up>")。(1)询问Emacs键序列是什么; (2)使用该值的kbd - phils

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接