【问题标题】:Is it considered a bad practice to replace a built-in key binding in Emacs?替换 Emacs 中的内置键绑定是否被认为是一种不好的做法?
【发布时间】:2020-12-01 13:44:39
【问题描述】:

我将C-x C-f 绑定到counsel-find-file,所以我用counsel-find-file 替换了默认的find-file。现在我想绑定counsel-recentf 以查看最近文件的列表,我想将其绑定到C-x f 但是C-x f 用于设置填充列。我从不手动设置填充列,如果我这样做可能会在 init.el 中。

我的问题:可以用counsel-recentf 替换C-x f set-fill-column 这是一个Emacs 内置键绑定吗?

【问题讨论】:

  • 模糊的建议是使用 Cc 进行用户绑定,但我不会覆盖您从未使用过的密钥会引起任何关注(除非您尝试使用其他人的 Emacs,或者有人尝试使用您的)。
  • 哦,那么我会将它映射到默认情况下似乎未定义的C-c r。我很想保持一致。
  • 任何C-c <letter> 都保留供您随意使用。参考gnu.org/software/emacs/manual/html_node/elisp/…
  • 个人意见前面...我不太在意官方的建议。我让 Emacs 成为我的 Emacs。对我来说,这是 Emacs 故事的一部分。我很高兴地将 C-v 和 C-b 重新映射为我自己的键绑定的前缀,因为我只需要比 C-c <letter> 可用的更多。从 ca 开始对我很有效。 20年左右。您可能会时不时地遇到冲突,尤其是在按键绑定很重的 org-mode 中。
  • @tripleee:“模糊的建议是使用 C-c 进行用户绑定”。不,没有这样的建议。所有密钥对用户来说都是公平的游戏。以C-c 开头后跟一个字母的键是唯一为用户保留的键。

标签: emacs key-bindings conventions


【解决方案1】:

您想为自己使用的绑定,还是您在为他人提供的库中设置的绑定?

  1. 如果是前者,那么你可以做任何你喜欢的键绑定。所有键绑定对用户来说都是公平的游戏。

  2. 如果是后者,那么您需要遵循 GNU Emacs key-binding conventions

(您可以阅读 Emacs 本身的约定,使用C-h i m Elisp RET g Key Binding Conventions。或C-h i m Elisp RET,后跟i key-binding, TAB。)

约定的存在是为了促进人们一起玩得好——合作、考虑。键绑定约定为用户保留某些键。这意味着库不应绑定它们。它确实意味着这些是可供用户使用的键 - 请参阅 #1。

正如那个文档所说:

C-c 和一个字母(大写或小写)组成的序列是 为用户保留;它们是唯一序列保留给 用户,所以不要阻止他们。

【讨论】:

    猜你喜欢
    • 2015-10-29
    • 2022-12-22
    • 2017-07-28
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 2018-01-25
    • 1970-01-01
    相关资源
    最近更新 更多