привязка режима ido замаскирована глобальным ключом набора

stackoverflow! В последние несколько дней я пытался немного настроить свой emacs и столкнулся с проблемой, к которой не знаю, как подступиться.

Что я пытаюсь сделать, так это определить глобальную привязку клавиш и привязку клавиш режима ido, которые будут использовать одни и те же клавиши для выполнения разных задач.

Привязка клавиш в режиме Ido определяется следующим образом:

(defun ido-my-keys ()
  "Add my keybindings for ido."
  (define-key ido-completion-map (kbd "M-<return>") 
    'ido-invoke-in-vertical-split)
  )

(add-hook 'ido-setup-hook 'ido-my-keys)

И она работает нормально, пока я не поместил следующую строку в свой файл .emacs:

(global-set-key (kbd "M-<return>") 'insert-newline-and-indent)

При наличии этой строки M-return вызывает даже из ido-switch-buffer. Интересно, что когда я использую global-set-key в интерактивном режиме (т. е. не из файла инициализации, а из вызова M-x), все работает так, как ожидалось.

Спасибо за помощь. Извините за мой английский.


Проблема оказалась в ergoemacs-режиме, который я включил. Этот режим определяет совет для global-set-key, который вызывает этот эффект.

Я решил проблему, переместив вызов global-set-key над инициализацией ergoemacs. Не лучшее решение, но простое.

5
задан campugnatus 26 March 2012 в 21:16
поделиться