Как вы перезагрузите локальные переменные каталога? Я хотел бы изменить .dir-locals.el
и применить такие изменения к текущей сессии Emacs.
27
Как вы перезагрузите локальные переменные каталога? Я хотел бы изменить .dir-locals.el
и применить такие изменения к текущей сессии Emacs.
buffer-list
.Ответы:
Эта функция перечитает файл dir-locals и установит новые значения для текущего буфера:
И если вы хотите перезагрузить dir-locals для каждого буфера в каталоге вашего текущего буфера:
Все
after-save-hook
локальные каталоги dir можно обновлять каждый раз, когда вы сохраняете файл dir-locals, добавляя буферы в .dir-locals.el.Конечно, это может привести к непредвиденным последствиям, так как будет сбрасывать значения переменных независимо от того, были ли они изменены в другом месте, поэтому используйте их на свой страх и риск.
источник
Вы также можете использовать:
M-: (hack-dir-local-variables-non-file-buffer)
Чтобы проверить, работает ли он : из буфера (например, файла режима org) введите
M-x add-dir-local-variable
, затем подтвердите (по умолчанию режим org), затем введите demo RET, затем «this is demo» RET.Ваш файл .dir-locals.el появится в буфере:
Вы должны сохранить это:
C-x C-s
Затем вернитесь в буфер режима org и убедитесь, что демонстрационная переменная не определена (
C-h C-v demo
)Здесь вы можете использовать трюк:
M-: (hack-dir-local-variables-non-file-buffer)
Теперь
C-h C-v demo
напечатает:источник