emacs密钥绑定命令会影响另一个



以前我使用C-SPCactivate/deactivate mark,现在我使用expand-region包,并将密钥绑定设置为C-@,如下所示:

(global-set-key (kbd "C-@") 'er/expand-region)

但这也影响了C-SPC密钥绑定,因此它也绑定到expand-region

我需要的是C-@expand-region结合,C-SPC与旧的activate/deactivate mark结合。

建议您参考:

set mark命令不适用于带有C-SPC 的emacs

https://www.gnu.org/software/emacs/manual/html_node/emacs/Setting-Mark.html

引用后者:

"脚注[1]ASCII中没有C-<SPC>字符;通常,在文本终端上键入C-<SPC>会得到字符C-@。该键还绑定到set mark命令,因此,除非您的文本终端表现不一样,否则您不妨将C-@视为C-<SPC>。"

我想你会发现它们不是单独的钥匙;C-SPC发送一个与C-@相同的代码。我认为这意味着你必须找到其他地方来绑定其中一个函数,(即使你必须覆盖扩展区域)

为第二个答案道歉。。。我认为第一个是错误的,因为我现在可以对C-SPC和C-@进行单独的定义,如下所述。

这可以分别定义C-@和C-SPC:

(全局设置键[?\C-@]'行首)(全局设置键(kbd"C-SPC")'线路末端)

值得称赞的是,我从这里得到了答案:在Emacs中重新绑定C空间在谷歌搜索"emacs控制空间"之后

(关于你的问题,"我应该将这个扩展区域绑定到什么键?",我通常使用C-h C-k,并键入一些我认为不使用的键。然后看看默认情况下该键绑定到的函数。如果它对我有用,我会尝试另一个键,并继续查找。如果我觉得我永远不会使用默认定义,我会为自己的目的重新定义它。)

最新更新