Пересвязать C-пространство в Emacs - PullRequest
6 голосов
/ 12 июля 2010

Я пробовал разные версии безрезультатно:

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

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

Я использую режим CUA и запускаю Emacs в Ubuntu, версия: GNU Emacs 23.1.50.1 (x86_64-pc-linux-gnu,GTK + версия 2.18.0) от 2009-09-27 для crested, модифицированная Debian

Когда я запускаю tempo-complete-tag вручную, он сообщает, что привязан к C-пространству, но C-пространство все еще работает cua-set-mark(или если CUA отключен, set-mark-command).

Как мне перепривязать ярлык C-space в Emacs к команде, которую я решу?

Ответы [ 3 ]

19 голосов
/ 12 июля 2010

C-h k (key) расскажет вам, как Emacs ссылается на данный ключ (в данном случае это "C-SPC").(global-set-key (kbd "C-SPC") 'tempo-complete-tag) будет делать то, что вы хотите.

Я всегда использую функцию (kbd) для привязки клавиш, поскольку она позволяет вам ссылаться на клавишу так же, как она обычно пишется везде.

Имейте в виду, что C-SPC является стандартной set-mark-command привязкой!Лично я бы выбрал что-то другое:)

4 голосов
/ 12 июля 2010

Также имейте в виду, что «global-set-key» будет делать только то, что вы хотите, если ваш режим не отменяет его. Мне лень загружать темп, чтобы увидеть, действительно ли он переопределяет C-SPC, но он вполне может это сделать, и в этом случае вы захотите поместить это в ваш .emacs:

(add-hook 'tempo-mode-hook
          (lambda ()
            (local-set-key (kbd "C-SPC") 'tempo-complete-tag)
            ))
0 голосов
/ 29 января 2017

Альтернативный синтаксис для привязки ключей через вектор:

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