Коментар від @Malabarba пояснює вашу проблему.
kill-local-variable
Чи позбутися локальної змінної зв'язування. Але оскільки у вашому випадку змінна автоматично є локальною у будь-якому буфері, коли ви присвоюєте їй значення, це значення є локальним.
AFAIK, немає ніякого способу протистояти make-variable-buffer-local
, крім використання unintern
символу. ( makunbound
не допомагає.)
Якщо ви використовуєте unintern, тоді ви все в порядку. Але майте на увазі, що безперебійне видалення символу взагалі видаляється, тому якщо ви використовували символ для чогось іншого, крім змінної, то це може мати негативні наслідки.
Тож єдина відповідь, яку я маю - використовувати unintern
та перепризначити змінну будь-яке значення, яке ви хочете - це буде глобальне значення.
make-variable-buffer-local
notmake-local-variable
.