Emacs прекрасно загружает мой загрузочный файл .emacs.d/init.el
когда запускается как обычный пользователь, но отказывается загружать его, когда запускается как sudo emacs file.type
. Я попытался сменить владельца .emacs.d
на root
но безуспешно.
5 ответов
Я немного разбираюсь в теме, но вы можете использовать Emacs как обычный пользователь и использовать tramp для открытия файла как root:
C-xC-f /sudo::/path/to/file
спросит у вас пароль sudo и откроет файл как root.
Когда вы запускаете как sudo
add -s
для сохранения вашей среды. Он не поддерживает вашу среду, поэтому ваш каталог HOME
потерян. Emacs ищет в ~/.emacs, ~/.emacs.el, or ~/.emacs.d/init.el
, поэтому, если вы потеряете HOME, вы потеряете путь к файлам запуска.
Судо не работал для меня. Вот обходной путь, который я использовал.
Загрузите emacs как обычный пользователь (чтобы ваши настройки вступили в силу)
- Тип
M-x customize-themes
- Используйте ссылку, чтобы перенести ваши настройки в тему.
- Дайте название вашей теме. (Я снял флажок Удалить параметры сохраненной темы из файла пользовательского сохранения. Не знаю, повлияло ли это на это)
- Нажмите сохранить тему и обратите внимание, где тема сохранена.
- Выйдите из emacs и скопируйте файл вашей темы в папку по умолчанию для вашей темы emacs (например, ./usr/share/emacs/24.4/etc/themes/).
- Теперь откройте emac с помощью sudo.
- Введите
M-x customize-themes
снова, и вы должны увидеть вновь созданную тему как выбираемую. - Нажмите Save Theme Settings, и ваша сессия sudo теперь будет использовать вашу собственную тему в будущем.
Хотелось бы, чтобы был более элегантный способ исправить это, но он выполняет свою работу.
JMQ правильно. В альтернативном хитром решении. Если вы единственный, кому разрешено быть sudoer или войти в систему как root, вы можете добавить символическую ссылку в /root/
в ваш каталог .emacs.d
. Например:
ls -l /root/.emacs
lrwxrwxrwx. 1 root root 18 May 5 11:14 /root/.emacs -> /home/<user>/.emacs
У jmq правильная идея, проблема в том, что emacs просматривает каталоги ~/, чтобы найти ваш файл .emacs и установленные скрипты.
Его предложение sudo -s
, если оно работает, самое простое, но есть большая вероятность, что оно не сработает. Проблема действительно в том, как настроены ваши sudoers
. Вероятно, sudoers
настроен для сброса вашей среды, что означает, что он не сохраняет каталог HOME для вашего пользователя при запуске команды sudo. Возможные опции представлены здесь как самый высокий рейтинг ответа, и использование -s
не может обойти большинство настроек sudoers
, которые в первую очередь облажают его.