Переопределить Ctrl-вкладку в Emacs org.mode
-
30-09-2019 - |
Вопрос
Я хотел бы использовать Ctrl. + Вкладка В Emacs для моего собственного использования, но режим Emacs ORG уже имеет эту границу. Как я могу использовать свой собственный привязку вместо привязки MOD MODE.
В моем .emacs файл я использую:
(global-set-key (kbd "<C-tab>") 'switch-view )
И это работает везде, кроме в режиме ОРГ
Решение
Ключевой привязку, которую вы описываете, определяется в org.el
как это:
(org-defkey org-mode-map [(control tab)] 'org-force-cycle-archived)
Это означает, что он действителен только в org-mode-map
, один из локальных керов Орг-режима. Следующий код добавляет крюк Это запускается, когда начинается org-режим. Это просто удаляет эту ключевую привязку от org-mode-map
.
(add-hook 'org-mode-hook
'(lambda ()
(define-key org-mode-map [(control tab)] nil)))
Добавьте этот код в файл .emacs, а затем перезагрузите Emacs.
Другие советы
Более надежный способ установить ключи, которые вы хотите вступить в силу повсюду Независимо от основного режима - это определить глобальный второстепенный режим с помощью пользовательского KEYMAP.
Незначительные режимы также могут иметь местные кепки; Всякий раз, когда существует незначительный режим, определения в своем Keymap переопределяют как локальный keymap режима основного режима и глобальный keymap
( http://www.gnu.org/software/emacs/manual/html_node/emacs/local-keymaps.html. )
Таким образом, вам не нужно беспокоить локальный Keymap Mide Mode каждый раз, когда вы столкнулись с режимом, который забивает ваш ключ.
Смотрите этот вопрос: Q & A для деталей:
Глобально переопределение ключевой привязки в Emacs
Это не работает, потому что, как вы уже говорили, ORG-Mode использует свой собственный ключ для C-вкладки. Другими словами, даже если вы определите глобальный ключ, как только вы вызываете ORG-Mode, он перезаписывает это привязку со своими локальными ключевыми ключами.
Однако вы можете сделать, это добавляет функцию обратного вызова, которая вызывается всякий раз, когда вы запускаете ORG-Mode, а в этой функции обратного вызова вы сбрасываете C-вкладку, чтобы вызвать вид коммутации:
(add-hook 'org-mode-hook (lambda () (local-set-key [(control tab)] 'switch-view)))
Поместите вышеуказанную линию в файл .emacs и в следующий раз, когда вы начнете новых эмблей, которые вы должны быть хороши, чтобы пойти.