在Emacs中重新绑定C空间

时间:2010-07-12 08:58:59

标签: emacs keyboard-shortcuts cua

我尝试了各种版本无济于事:

(global-set-key (kbd "C-<space>") 'tempo-complete-tag)

(global-set-key [C-space] 'tempo-complete-tag)

我正在使用CUA模式并在Ubuntu上运行Emacs,版本:GNU Emacs 23.1.50.1(x86_64-pc-linux-gnu,GTK +版本2.18.0)  2009-09-27关于凤头,由Debian修改

当我手动运行tempo-complete-tag时,它告诉我它已绑定到C空间但C空间仍然运行cua-set-mark(或者如果CUA被禁用,set-mark-command)。

如何将Emacs中的C-space快捷方式重新绑定到我决定的命令?

3 个答案:

答案 0 :(得分:19)

C-h k (key)将告诉您Emacs如何引用给定键(在此实例中为“C-SPC”)。 (global-set-key (kbd "C-SPC") 'tempo-complete-tag)会做你想做的事。

我总是使用(kbd)函数进行键绑定,因为它允许您以与通常在其他地方编写的方式相同的方式引用键。

请记住,C-SPC是标准set-mark-command绑定!就个人而言,我会选择不同的东西:)

答案 1 :(得分:4)

另请注意,如果您的模式没有覆盖它,“global-set-key”将只执行您想要的操作。我太懒了加载速度来看看它是否确实覆盖了C-SPC,但它可能会这样做,在这种情况下,你想把它放在你的.emacs中:

(add-hook 'tempo-mode-hook
          (lambda ()
            (local-set-key (kbd "C-SPC") 'tempo-complete-tag)
            ))

答案 2 :(得分:0)

键绑定的替代语法是通过vector:

(global-set-key [?\M-\ ] 'cycle-spacing)
(global-set-key [?\C-\ ] 'tempo-complete-tag)