/ / Lösche ein Wort, ohne es zum Kill-Ring in Emacs hinzuzufügen - emacs, dot-emacs

Löschen Sie ein Wort, ohne es zum Kill-Ring in Emacs hinzuzufügen - emacs, dot-emacs

Beim Wechseln von Dateien mit dem Minipuffer (C-xC-f), benutze ich oft M-Backspace um Wörter im Pfad zu löschen. Emacs legt automatisch das, was ich lösche, in den Kill-Ring. Das kann ärgerlich sein, wenn ich irgendwann in eine andere Datei umsetze, um etwas einzufügen, und am Ende einen Teil des Dateipfads einfüge. Ich weiß, es gibt Workarounds, und der andere Code ist immer noch im Kill-Ring usw., aber ich möchte diese Funktionalität einfach deaktivieren.

Antworten:

17 für die Antwort № 1

Emacs hat keine a backward-delete-word Funktion, aber es ist einfach genug, um eins zu definieren:

(defun backward-delete-word (arg)
"Delete characters backward until encountering the beginning of a word.
With argument ARG, do this that many times."
(interactive "p")
(delete-region (point) (progn (backward-word arg) (point))))

Dann können Sie M-Backspace an binden backward-delete-word im minibuffer-local-map:

(define-key minibuffer-local-map [M-backspace] "backward-delete-word)

2 für die Antwort № 2

Siehe eine Diskussion zu diesem Thema unter help-gnu-emacs@gnu.org: http://lists.gnu.org/archive/html/help-gnu-emacs/2011-10/msg00277.html

Die Diskussion läuft auf diese kurze Lösung hinaus:

(add-hook "minibuffer-setup-hook"
(lambda ()
(make-local-variable "kill-ring)))

Verwandte Fragen


Kommentare (0)

Einen Kommentar hinzufügen