Często zmieniam interfejs API mojego pakietu, ale company-mode
wyciąga każdy zdefiniowany symbol (tak jak powinien) w swoich uzupełnieniach. Nie chcę przypadkowo użyć niezwiązanej nazwy, więc w jaki sposób mogę cofnąć powiązanie wszystkich zmiennych i funkcji rozpoczynających się, powiedzmy my-package-
,? Potem po prostu będę mógł load-file
znów.
źródło
feature
system; Pracuję tylko z funkcjami i zmiennymi bez wyraźnego grupowania. Nie zawracałem sobie głowy oceną(provide 'my-package)
.provide
. Ale tak czy inaczej, jeśli naprawdę chcesz robić rzeczy w brudny sposób, zobacz moją edycję.provide
, po prostu nie sądzę, żeby to zadziałało w tym przypadku. Czy funkcje zapamiętują, w jakim pliku zostały zdefiniowane, jeśli zostały ocenione interaktywnie?unload-feature
nie ma żadnego efektu, jeśli oceniasz kod bez ładowania go z pliku (który maprovide
).Służy
makunbound
do usuwania użycia symbolu jako zmiennej dynamicznej (tj. Do jego unieważnieniasymbol-value
).Służy
fmakunbound
do usuwania użycia symbolu jako funkcji (tj. Do jego unieważnieniasymbol-function
).Służy
mapatoms
do iteracji wszystkich symboli. Działaj na każdym, któregosymbol-name
odpowiada konkretny prefiks, który Cię interesuje: zadzwoń zarówno na niego, jakmakunbound
ifmakunbound
na niego.Nie potrzebujesz
unintern
tego symbolu, chyba że używasz również uzupełnienia samych symboli, a nie tylko ich użycia jako zmiennych lub funkcji. Ale jeśli nie chcesz, aby całkowicie usunąć symbol następnie użyćunintern
.źródło