2

Emacs прекрасно загружает мой загрузочный файл .emacs.d/init.el когда запускается как обычный пользователь, но отказывается загружать его, когда запускается как sudo emacs file.type . Я попытался сменить владельца .emacs.d на root но безуспешно.

5 ответов5

5

Я немного разбираюсь в теме, но вы можете использовать Emacs как обычный пользователь и использовать tramp для открытия файла как root:

C-xC-f /sudo::/path/to/file

спросит у вас пароль sudo и откроет файл как root.

3

Когда вы запускаете как sudo add -s для сохранения вашей среды. Он не поддерживает вашу среду, поэтому ваш каталог HOME потерян. Emacs ищет в ~/.emacs, ~/.emacs.el, or ~/.emacs.d/init.el , поэтому, если вы потеряете HOME, вы потеряете путь к файлам запуска.

2

Судо не работал для меня. Вот обходной путь, который я использовал.

Загрузите emacs как обычный пользователь (чтобы ваши настройки вступили в силу)

  • Тип M-x customize-themes
  • Используйте ссылку, чтобы перенести ваши настройки в тему.
  • Дайте название вашей теме. (Я снял флажок Удалить параметры сохраненной темы из файла пользовательского сохранения. Не знаю, повлияло ли это на это)
  • Нажмите сохранить тему и обратите внимание, где тема сохранена.
  • Выйдите из emacs и скопируйте файл вашей темы в папку по умолчанию для вашей темы emacs (например, ./usr/share/emacs/24.4/etc/themes/).
  • Теперь откройте emac с помощью sudo.
  • Введите M-x customize-themes снова, и вы должны увидеть вновь созданную тему как выбираемую.
  • Нажмите Save Theme Settings, и ваша сессия sudo теперь будет использовать вашу собственную тему в будущем.

Хотелось бы, чтобы был более элегантный способ исправить это, но он выполняет свою работу.

1

JMQ правильно. В альтернативном хитром решении. Если вы единственный, кому разрешено быть sudoer или войти в систему как root, вы можете добавить символическую ссылку в /root/ в ваш каталог .emacs.d . Например:

ls -l /root/.emacs
lrwxrwxrwx. 1 root root 18 May  5 11:14 /root/.emacs -> /home/<user>/.emacs
0

У jmq правильная идея, проблема в том, что emacs просматривает каталоги ~/, чтобы найти ваш файл .emacs и установленные скрипты.

Его предложение sudo -s , если оно работает, самое простое, но есть большая вероятность, что оно не сработает. Проблема действительно в том, как настроены ваши sudoers . Вероятно, sudoers настроен для сброса вашей среды, что означает, что он не сохраняет каталог HOME для вашего пользователя при запуске команды sudo. Возможные опции представлены здесь как самый высокий рейтинг ответа, и использование -s не может обойти большинство настроек sudoers , которые в первую очередь облажают его.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .