Wie lösche ich eine Funktion?

8

Für das, was ich tue, neige ich dazu, viele Funktionen zu definieren, die ich vorübergehend benutze. Die Lebensdauer beträgt normalerweise 1-2 Wochen - und dann definiere ich einen neuen Satz von Funktionen.

Ich konnte weder herausfinden, wo sich diese Definitionen tatsächlich befinden, noch wie ich sie löschen kann, indem ich nur einen Funktionsnamen gebe (was nützlich wäre).

A_P
quelle
3
Warum die Mühe? Sie verschwinden, wenn Sie Emacs das nächste Mal neu starten (es sei denn, Sie speichern sie in Ihrem .emacs).
Barmar
1
@ Barmar. Ich wusste das nicht. Meine Frage wurde mehrmals bearbeitet. Ich definiere ein Tastaturmakro, speichere es als Funktion und binde es an eine Verknüpfung. Sobald ich mit dem, was ich tue, fertig bin, definiere ich normalerweise mehr und binde wieder. Aber die Funktion ist immer noch da, wenn ich Mx drücke. Daher die Frage. PS. Ich kenne nicht viele Emacs-Interna, daher scheint es für manche eine naheliegende Frage zu sein.
A_P

Antworten:

7

Neben dem Entfernen der Funktionsdefinition mit fmakunboundund der Variablenbindung mit makunboundkönnen Sie auch den Namen selbst mit entfernen unintern.

Beachten Sie auch, dass Ihre Funktionen und Variablen beim Neustart von Emacs verloren gehen , sofern Sie Ihre Definitionen nicht in einer Datei (z. B. einer Init-Datei ) speichern und laden.

sds
quelle
13

Funktionen sind ungebunden mit:

(fmakunbound 'NAME)

(Das Äquivalent für Variablen ist makunbound.)

Phils
quelle