stackoverflow! W ciągu ostatnich kilku dni próbowałem trochę dostosować emacsa i stanąłem przed problemem, że nie wiem, jak się do niego zbliżyć.wiązanie ido maskowane przez klucz globalny
Co próbuję zrobić, to zdefiniować globalne keybinding i ido-mode keybinding, który używałby tych samych kluczy do robienia różnych rzeczy.
ido-mode kombinacja klawiszy jest zdefiniowana w ten sposób:
(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)
i działa dobrze, dopóki nie zamieścić następującą linię w moim pliku .emacs:
(global-set-key (kbd "M-<return>") 'insert-newline-and-indent)
Z tej linii występuje M-zwrotnym wywołuje insert-newline-and-indent nawet z ido-switch-buffer. Co ciekawe, gdy interaktywnie używam klucza globalnego (tj. Nie z pliku init, ale z inwokacji M-x), wszystko działa zgodnie z oczekiwaniami.
Dzięki za pomoc. Przepraszam za mój angielski.
Problem okazał się być w trybie ergoemacs, który miałem włączony. Ten tryb definiuje porady dla globalnego klucza, który powoduje ten efekt.
Rozwiązałem problem, przesuwając wywołanie klawisza globalnego powyżej inicjowania Ergoemacsa. Nie najlepsze rozwiązanie, ale proste.
Nie mogę tego odtworzyć. BTW 'ido-invoke-in-vertical-split' nie jest wbudowaną funkcją musiałem google dla niego. https://gist.github.com/493269 – kindahero
Przykro mi z powodu takiej nieprzejrzystości. W każdym razie ta funkcja nie wydaje się być związana z problemem: zmiana jej na coś innego (np. Ido-exit-minibuffer) nie zmienia efektu. – campugnatus
Z której wersji Emacsa korzystasz? Nie mogę również odtworzyć tego problemu (w Emacs 24.0.94). – phils