Сохранять конфигурацию пользователя при запуске emacs в режиме sudo

Мне нужно запустить emacs в режиме sudo, чтобы отредактировать некоторые файлы .html или .php в моей директории / var / www.
Когда я запускаю его в режиме обычного пользователя, нет проблем с синтаксисом и цветами (я установил расширение php-mode.el). К сожалению, когда я запускаю его в режиме sudo, я теряю эту конфигурацию, что печально.
Есть ли способ вернуть его?

2

Решение

К сожалению, когда я запускаю его в режиме sudo, я теряю эту конфигурацию, что печально.

Это вполне ожидаемо. Когда вы запускаете команду с sudo вы запускаете его как другой пользователь, обычно root, В большинстве случаев будет использоваться конфигурация целевого пользователя.

Есть ли способ вернуть его?

Я считаю, что лучший вариант здесь — запустить Emacs нормально, а затем редактировать файл как root с помощью TRAMP. В этом случае я думаю, префикс файла с /sudo:: сделает свое дело, например C-x C-f /sudo::/var/www/html/foo.php RET, Emacs предложит вам ваш пароль, как sudo будет в командной строке.

TRAMP делает намного больше, чем позволяет вам редактировать определенные файлы как root с помощью sudoи, вероятно, стоит потратить время на просмотр руководства.

3

Другие решения

Вряд ли вам когда-нибудь понадобится бежать sudo emacsи это плохая практика запускать вещи как root без необходимости.

sudoedit команда / sudo -e Опция существует для редактирования файлов, принадлежащих другим пользователям. Редактор, который будет использоваться, описан в руководстве (man sudo) под описанием для -e опция:

Редактор, указанный в политике, запускается для редактирования временных файлов. Политика sudoers использует переменные среды SUDO_EDITOR, VISUAL и EDITOR (в этом порядке). Если ни один из параметров SUDO_EDITOR, VISUAL или EDITOR не задан, используется первая программа, указанная в опции редактора sudoers (5).

При таком подходе вы будете редактировать файл как обычный пользователь, и, следовательно, с вашей обычной конфигурацией редактора.

В качестве альтернативы используйте методы Tramp, встроенные в Emacs, согласно ответу Криса (что, скорее всего, проще, если вы редактируете много файлов).

Если это файлы, к которым вам необходимо иметь доступ на запись в целом, возможно, вам следует выделить себя в группу с правами на запись.

1

По вопросам рекламы [email protected]