Мне нужно запустить emacs в режиме sudo, чтобы отредактировать некоторые файлы .html или .php в моей директории / var / www.
Когда я запускаю его в режиме обычного пользователя, нет проблем с синтаксисом и цветами (я установил расширение php-mode.el). К сожалению, когда я запускаю его в режиме sudo, я теряю эту конфигурацию, что печально.
Есть ли способ вернуть его?
К сожалению, когда я запускаю его в режиме sudo, я теряю эту конфигурацию, что печально.
Это вполне ожидаемо. Когда вы запускаете команду с sudo
вы запускаете его как другой пользователь, обычно root
, В большинстве случаев будет использоваться конфигурация целевого пользователя.
Есть ли способ вернуть его?
Я считаю, что лучший вариант здесь — запустить Emacs нормально, а затем редактировать файл как root
с помощью TRAMP. В этом случае я думаю, префикс файла с /sudo::
сделает свое дело, например C-x C-f /sudo::/var/www/html/foo.php RET
, Emacs предложит вам ваш пароль, как sudo
будет в командной строке.
TRAMP делает намного больше, чем позволяет вам редактировать определенные файлы как root
с помощью sudo
и, вероятно, стоит потратить время на просмотр руководства.
Вряд ли вам когда-нибудь понадобится бежать sudo emacs
и это плохая практика запускать вещи как root без необходимости.
sudoedit
команда / sudo -e
Опция существует для редактирования файлов, принадлежащих другим пользователям. Редактор, который будет использоваться, описан в руководстве (man sudo
) под описанием для -e
опция:
Редактор, указанный в политике, запускается для редактирования временных файлов. Политика sudoers использует переменные среды SUDO_EDITOR, VISUAL и EDITOR (в этом порядке). Если ни один из параметров SUDO_EDITOR, VISUAL или EDITOR не задан, используется первая программа, указанная в опции редактора sudoers (5).
При таком подходе вы будете редактировать файл как обычный пользователь, и, следовательно, с вашей обычной конфигурацией редактора.
В качестве альтернативы используйте методы Tramp, встроенные в Emacs, согласно ответу Криса (что, скорее всего, проще, если вы редактируете много файлов).
Если это файлы, к которым вам необходимо иметь доступ на запись в целом, возможно, вам следует выделить себя в группу с правами на запись.