2012-11-20 3 views
5

Also habe ich versucht, einen Schlüssel zu einem anderen Befehl als Standard zuordnen, aber ich bekomme nicht den gewünschten Effekt.Unbeabsichtigtes Verhalten beim erneuten Binden in Emacs

Wie Sie sehen können, ist der Punkt, um die Nachricht anzuzeigen "Use C-f!" im Echobereich, wenn die linke Pfeiltaste gedrückt wird. Was dies jedoch tut, ist die Nachricht in den aktuellen Puffer, den ich bearbeite, auszugeben.

Was fehlt mir?

Grüße,

David Lind

Antwort

3

Sie sollten Schlüssel zum Befehl binden:

(global-set-key (kbd "<left>") (lambda() (interactive) (message "Use C-f!"))) 
+0

Danke Sir! Also muss der Schlüssel an eine Funktion gebunden sein? So interpretiere ich dies, da das einzige, was an meiner Version anders ist und dass Ihr Befehl als Lambda-Funktion definiert ist. – davidl

+0

Nicht nur eine Funktion, eine interaktive Funktion. –

+0

Aber warum muss es ein Lambda sein? Dasselbe habe ich gerade gemacht, um eine Datei beim Einstieg in den Haskell-Modus zu laden. '(Add-hook 'haskell-mode-hook (lambda() (load-file" ~/yada.el "))) .. Der Versuch, ohne die Lambda-Definition Fehler zu machen, wird Load-Datei nicht als eine Funktion für sich betrachtet? Weil '(add-hook' haskell-mode-hook 'load-file "~/yada.el") fehlschlägt. Vielleicht ist das Thema eines anderen Posts? :) – davidl