Ich möchte Emacs nicht nur dazu bringen, einen Puffer zu vergraben, sondern ihn auch zu töten, wenn ich q
auf einen *Completions*/*Help*/etc
Puffer drücke . Ich kann die Funktion zum Definieren von Ersatzschlüsseln nicht zum Laufen bringen. Ich verwende Emacs24 unter OSX.
Folgendes habe ich:
(substitute-key-definition
'quit-window '(lambda () (interactive) (quit-window "KILL")) global-map)
Antworten:
Die andere Antwort ergibt tatsächlich ein leicht inkompatibles Verhalten. Stellen Sie sich eine Situation vor, in der Sie bereits einen Frame in zwei Fenster aufgeteilt haben, dann öffnen Sie einen Hilfepuffer und beenden ihn.
quit-window
ist klug genug zu wissen, dass es nicht das Fenster töten sollte, nur den Puffer. Es hat sogar noch ein paar clevere Tricks im Ärmel, also ist es unsere beste Wette, damit zu arbeiten und es nur ein bisschen zu optimieren. Hier ist ein einfacher Weg, um das zu erreichen, was Sie wollen:quelle
quit-window
ist SCHLECHT, fast so schlimm wie eine Neudefinition. Es wird mehr als wahrscheinlich Erweiterungen und Teile von Emacs beschädigen, wie in [diesem Beispiel] ( github.com/joaotavora/sly/pull/143#issuecomment-361030487 ). Fügen Sie dort zumindest einencalled-interactively-p
Anruf hinzu.called-interactively-p
.defadvice
Aufrufe zu Chaos geführt haben.Nur die Funktion neu zu definieren schien für mich also funktioniert zu haben
Ich habe nie verstanden, warum ein Vervollständigungs- oder Hilfepuffer noch verfügbar ist, wenn Sie den Puffer wechseln, nachdem Sie q gedrückt haben, um ihn zuvor zu beenden.
quelle