Вопрос

Я хотел бы использовать 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 и в следующий раз, когда вы начнете новых эмблей, которые вы должны быть хороши, чтобы пойти.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top