Предположим, я хочу открыть файл в существующем сеансе Emacs, используя su
или sudo
, не опускаясь в оболочку и не делая sudoedit
или sudo emacs
. Один из способов сделать это
C-x C-f /sudo::/path/to/file
но это требует дорогого туда-обратно через SSH . Есть ли более прямой путь?
[РЕДАКТИРОВАТЬ] @JBB правильно. Я хочу иметь возможность вызывать su
/ sudo
сохранять, а также открывать. Было бы хорошо (но не идеально) повторно авторизоваться при сохранении. То , что я смотрю на это вариация find-file
и save-buffer
которые могут быть «конвейер» через su
/ sudo
.
emacs
file-permissions
sudo
Крис Конвей
источник
источник
sudoedit
упоминание. Очень полезно.Ответы:
Приятной особенностью Tramp является то, что вы платите в оба конца за SSH только при открытии первого файла. Затем Sudo кэширует ваши учетные данные, а Emacs сохраняет дескриптор, поэтому последующие файлы, открытые sudo, занимают гораздо меньше времени.
Я также не нашел дополнительного времени, чтобы спасти бремя. Это достаточно быстро, ИМО.
источник
Бродяга делает не туда-обратно Sudo через SSH, он использует подоболочку . См. Руководство: https://www.gnu.org/software/tramp/#Inline-methods.
Поэтому я рекомендую вам придерживаться TRAMP.
источник
Если вы используете
helm
,helm-find-files
поддерживает открытие файла с правами rootC-c r
.источник
M-x helm-find-files C-c ?
что говорило бы, как вернуться к обычному режиму открытия как пользователь. Повторное действиеC-c r
не останавливает это.sudo -k
а затем он запрашивает пароль. Я перезапустил Emacs, и это не устранило проблему. Я покопался.emacs.d
и нашел несколько ссылок на бродягу, поэтому я их удалил. Сейчас это кажется лучше, но я не уверен, свободен ли я от этого.На самом деле это не ответ на первоначальный вопрос, но вот вспомогательная функция, облегчающая выполнение маршрута tramp / sudo:
источник
esk-sudo-edit
.По крайней мере, для сохранения, пакет sudo-save был написан именно для такой проблемы.
источник
Ваш пример вообще не запускает ssh, по крайней мере, с моей версией TRAMP ("2.1.13-pre"). И find-file, и save-buffer отлично работают.
источник
Я рекомендую вам использовать советующие команды. Поместите эту функцию в ваш ~ / .emacs
источник
ido-find-file
для поиска файлов.(работает только локально. Нужно обновить для корректной работы через бродягу)
Немного расширил ответ Бертона:
источник
Тьфу. Возможно, вы могли бы открыть оболочку в Emacs и exec sudo emacs.
Проблема в том, что вы, вероятно, не просто хотите открыть файл. Вы хотите иметь возможность сохранить его позже. Таким образом, ваши корневые привилегии должны сохраняться, а не просто существовать для открытия файла.
Похоже, вы хотите, чтобы Emacs стал вашим оконным менеджером. Это достаточно раздутый без этого. :)
источник