Вызов unload-featureотмены определения всех символов, определенных как часть загрузки исходного кода Elisp или файла, скомпилированного байтами. Убедитесь, что ваш файл заканчивается, позвонив provideв конце. Это предполагает, что вы загрузили файл с помощью одной из loadфункций или через него require, он не будет неопределенными символами, определенными C-M-x( eval-defun) или аналогичными механизмами.
Если вы действительно хотите отменить привязку символов на основе их имени, а не на основе пакета, который их определил, вы можете использовать mapatomsдля перебора всех символов.
(mapatoms (lambda (symbol)
(if (string-prefix-p "foo-" (symbol-name symbol))
(unintern symbol))))
featureсистема; Я работаю только с функциями и переменными без какой-либо явной группировки. Я не удосужился оценить(provide 'my-package).