Пересвязать C-пространство в Emacs
Я пробовал разные версии безрезультатно:
(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 на гребне, модифицированном Debian
Когда я бегу tempo-complete-tag
вручную он говорит мне, что он связан с C-пространством, но C-пространство все еще работает cua-set-mark
(или если CUA отключен, set-mark-command
).
Как я могу привязать ярлык C-space в Emacs к команде, которую я решу?
3 ответа
C-h k (key)
расскажет вам, как Emacs ссылается на данный ключ (в данном случае это C-SPC). (global-set-key (kbd "C-SPC") 'tempo-complete-tag)
будет делать то, что вы хотите.
Я всегда использую (kbd)
функция для привязки клавиш, так как она позволяет ссылаться на клавишу так же, как она обычно пишется везде.
Имейте в виду, что C-SPC является стандартом set-mark-command
связывание! Лично я бы выбрал что-то другое:)
Также имейте в виду, что "global-set-key" будет делать только то, что вы хотите, если ваш режим не отменяет его. Я слишком ленив, чтобы загрузить темп, чтобы увидеть, действительно ли он отменяет C-SPC
, но вполне возможно, что в этом случае вы захотите поместить это в ваш.emacs:
(add-hook 'tempo-mode-hook
(lambda ()
(local-set-key (kbd "C-SPC") 'tempo-complete-tag)
))
Альтернативный синтаксис для привязки ключа через вектор:
(global-set-key [?\M-\ ] 'cycle-spacing)
(global-set-key [?\C-\ ] 'tempo-complete-tag)