Комментарий @Malabarba объясняет вашу проблему.
kill-local-variable
действительно избавляется от привязки локальной переменной. Но поскольку в вашем случае переменная автоматически является локальной в любом буфере, то при переназначении ей значения это значение является локальным.
AFAIK, нет способа противостоять make-variable-buffer-local
, кроме как использовать unintern
на символе. ( makunbound
не помогает.)
Если вы используете Intern, то все в порядке. Но имейте в виду, что использование символа "без" приводит к удалению символа в целом, поэтому, если вы использовали символ для чего-то другого, кроме переменной, то это может привести к негативным последствиям.
Таким образом, единственный ответ, который у меня есть, - это использовать, unintern
а затем переназначить переменную на любое значение, которое вы хотите - это будет глобальное значение.
make-variable-buffer-local
не используетmake-local-variable
.