Для Emacs 24.3 или новее см. Ответ Legoscia.
Для более ранних версий вы можете использовать следующий обходной путь из EmacsWiki :
Мы можем посоветовать ‘hack-dir-local-variables’
обойти это, если вы
готовы нести связанные с этим затраты производительности (которые могут быть
относительно минимален в некоторых ситуациях).
;; Enable directory local variables with remote files. This facilitates both
;; the (dir-locals-set-class-variables ...)(dir-locals-set-directory-class ...)
;; and the .dir-locals.el approaches.
(defadvice hack-dir-local-variables (around my-remote-dir-local-variables)
"Allow directory local variables with remote files, by temporarily redefining
`file-remote-p' to return nil unconditionally."
(flet ((file-remote-p (&rest) nil))
ad-do-it))
(ad-activate 'hack-dir-local-variables)
Если вы используете классы каталогов вместо файла .dir-locals.el
, вы должны установить класс с помощью обычного пути tramp. e.g.:
(dir-locals-set-class-variables
'read-only
'((nil . ((buffer-read-only . t)))))
(dir-locals-set-directory-class
"/ssh:(user)@(host):/path/to/dir" 'read-only)