stackoverflow! En los últimos días intenté personalizar un poco mis emacs y me enfrenté al problema que no sé cómo abordar.enlace ido-mode enmascarado por global-set-key
Lo que trato de hacer es definir un enlace de clave global y un enlace de modo ido-modo que usaría las mismas teclas para hacer cosas diferentes.
Ido-modo de combinación de teclas se define de esta manera:
(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)
y funciona bien hasta que coloque a la línea siguiente en mi archivo .emacs:
(global-set-key (kbd "M-<return>") 'insert-newline-and-indent)
Con esta línea actual M-retorno invoca insert-newline-and-indent incluso desde ido-switch-buffer. Curiosamente, cuando uso global-set-key de forma interactiva (es decir, no desde el archivo init sino desde la invocación M-x), todo funciona como se espera.
Gracias por su ayuda. Lo siento por mi ingles.
El problema se produjo en el modo ergoemacs que había encendido. Este modo define un consejo para global-set-key que causa este efecto.
He resuelto el problema moviendo la llamada global-set-key sobre la inicialización de ergoemacs. No es la mejor solución, sino simple.
no puedo reproducir este. Por cierto 'ido-invoke-in-vertical-split' no es función incorporada, tuve que buscarlo en Google. https://gist.github.com/493269 – kindahero
Lo siento por tanta oscuridad. De todos modos, esta función no parece estar relacionada con el problema: cambiarlo a otra cosa (por ejemplo, ido-exit-minibuffer) no cambia el efecto. – campugnatus
¿Qué versión de Emacs estás usando? Tampoco puedo reproducir este problema (en Emacs 24.0.94). – phils