Якщо випадком використання є спільний каталог конфігурації emacs ".emacs.d" для всіх користувачів машини Linux, це рішення https://emacs.stackexchange.com/a/4258/5488 буде працювати в більшості випадків, але в деяких case emacs намагається записати тимчасові файли в каталог user-emacs (наприклад, .ido.last файл). У таких випадках, якщо спільний конфігураційний каталог має дозвіл на запис для всіх користувачів, він буде працювати, але це може бути не бажаним рішенням, оскільки кожен користувач системи може не захотіти спільно використовувати один і той же каталог для зберігання тимчасових файлів. У такому випадку наступне рішення буде кращим варіантом.
Спільний файл конфігурації .emacs.d / init.el повинен починатися з
;; should come before calling package-initialize as it will populate
;; everything under common config "~/.emacs.d/elpa"
(setq user-init-file (or load-file-name (buffer-file-name)))
(setq package-user-dir (concat (file-name-directory user-init-file) "elpa"))
(package-initialize)
Зробіть загальний config .emacs.d мати дозвіл на читання для всіх користувачів (не потрібно мати дозвіл на запис)
another_user $ emacs -q --load /path/to/shared/config/.emacs.d/init.el
Кожен користувач матиме власну "~ / .emacs.d /" каталог, але використовується лише для збереження тимчасових файлів, але пакунки та інша конфігурація завантажуються із спільного каталогу конфігурацій.
.emacs.d
каталогу, якщо ви не зміните HOME, що мені здається проблематичним. Люди надали способи вирішення нижче, але, на мій погляд, це звучить як дуже розумний запит на функції для самого Emacs.