내가 사용하여 기존 이맥스 세션에서 파일을 열고 자하는 가정 su
또는 sudo
쉘 아래로 떨어 뜨리고하지 않고, sudoedit
또는 sudo emacs
. 이를 수행하는 한 가지 방법은
C-x C-f /sudo::/path/to/file
그러나 이것은 SSH를 통한 비싼 왕복 여행 이 필요합니다 . 더 직접적인 방법이 있습니까?
[편집] @JBB가 맞습니다. 저장하고 열 수 있도록 su
/ sudo
를 호출 할 수 있기를 원합니다 . 저장할 때 다시 인증하는 것이 좋습니다 (이상적이지는 않지만). 내가 무엇을 찾고 있어요 것은 변형입니다 find-file
및 save-buffer
이 될 수를 통해 “파이프” su
/ sudo
.
답변
Tramp의 좋은 점은 첫 번째 파일을 열 때 SSH에 대한 왕복 요금 만 지불한다는 것입니다. 그런 다음 Sudo는 자격 증명을 캐시하고 Emacs는 핸들을 저장하므로 후속 sudo가 열린 파일의 시간이 훨씬 단축됩니다.
나는 짐을 덜기 위해 시간이 더 걸리지 않았다. 충분히 빠릅니다, IMO.
답변
Tramp는 SSH를 통해 sudo를 왕복 하지 않으며 서브 쉘을 사용합니다 . 매뉴얼을 참조하십시오 : https://www.gnu.org/software/tramp/#Inline-methods
따라서 TRAMP를 사용하는 것이 좋습니다.
답변
당신이 사용하는 경우 helm
, helm-find-files
지원이와 루트로 파일을 여는 C-c r
.
답변
실제로 원래 질문에 대한 대답은 아니지만 다음은 트램 / 스도 경로를 조금 더 쉽게하는 도우미 기능입니다.
(defun sudo-find-file (파일 이름) "파일 찾기와 유사하지만 파일을 루트로 엽니 다." (대화식 "FSudo Find File :") (((tramp-file-name (concat "/ sudo ::"(확장 파일 이름 파일 이름))))) (파일 트램프 파일 이름 찾기)))
답변
최소한 저장을 위해 sudo-save 패키지 는 그러한 종류의 문제에 대해 정확하게 작성되었습니다.
답변
귀하의 예는 적어도 내 버전의 TRAMP ( “2.1.13-pre”)가 아닌 ssh를 전혀 시작하지 않습니다. 파일 찾기와 저장 버퍼 모두 훌륭하게 작동합니다.
답변
조언 명령을 사용하는 것이 좋습니다. 이 기능을 ~ / .emacs에 넣으십시오.
(defadvice ido-find-file (after find-file-sudo activate)
"Find file as root if necessary."
(unless (and buffer-file-name
(file-writable-p buffer-file-name))
(find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name))))