문제

가정 내가 원하는 파일을 열려면 기존 이맥스를 사용하여 세션 susudo, 없이 아래로 떨어지는 쉘고 sudoeditsudo emacs.이렇게 하는 방법 중 하나이

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

하지만 이 필요로는 비싼 라운드 여행을 통해 SSH.은 거기에 좀 더 직접적인 방법은?

[편집]@JBB 다.내가 원할 수 있게 su/sudo 저장 뿐 아니라 열려 있습니다.그것은 것이 확인(지만 이상)다시 권한을 부여 저장하는 경우.내가 무엇을 찾고 있는 변화 find-filesave-buffer 할 수 있는"파이프를 통해" su/sudo.

도움이 되었습니까?

해결책

좋은 일에 대한 부정기선은 당신이 지불하는 라운드 여행을 SSH 을 열 때 첫 번째 파일입니다.Sudo 다음을 캐시명,Emacs 저장,처리되도록 후속 sudo-열었던 파일은 훨씬 적은 시간이 걸릴.

내가 찾지 않은 추가하는데 걸리는 시간을 저장하는 부담을 주거나,.그것은 충분히 빠르,IMO.

다른 팁

바람둥이가 왕복 여행 sudo SSH 를 통해,그것은 사용 점이 존재한다..설명서를 참조하십시오: https://www.gnu.org/software/tramp/#Inline-methods

따라서 나는 권장 당신이 지팡이로 바람둥이입니다.

당신이 사용하는 경우 helm, helm-find-files 지원 파일 열기로 루트로 C-c r.

정말로 원래의 질문에 대답하지만,여기에는 도우미 기능을 확인 하기 바람둥/sudo 로 좀 더 쉽게:

(defun sudo-find-file (file-name)
  "Like find file, but opens the file as root."
  (interactive "FSudo Find File: ")
  (let ((tramp-file-name (concat "/sudo::" (expand-file-name file-name))))
    (find-file tramp-file-name)))

에서 이상 저장,a sudo-저장 패키지 작성 되었을 정확히 종류의 문제입니다.

귀하의 예를 시작하지 않는 ssh 에서,모든 적어도 내전램프("2.1.13-pre").모두 찾을 파일에 저장 버퍼 작업 중대하다.

내가 당신을 사용하여 조언 명령입니다.이 함수에서~/.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))))

(만 작동합니다.업데이트할 필요가 제대로 작동하려면을 통해 바람둥)

조금 확장 Burton 의 대답:

(defun sudo-find-file (file-name)
"Like find file, but opens the file as root."
(interactive "FSudo Find File: ")
(let ((tramp-file-name (concat "/sudo::" (expand-file-name file-name))))
(find-file tramp-file-name)))


(add-hook 'dired-mode-hook
    (lambda ()
      ;; open current file as sudo 
      (local-set-key (kbd "C-x <M-S-return>") (lambda()
        (interactive)
        (message "!!! SUDO opening %s" (dired-file-name-at-point))
        (sudo-find-file (dired-file-name-at-point))
      ))
    )
)

습니다.아마도 당신은 열 수있는 쉘에서 이맥스 및 exec sudo emacs.

문제는 당신은 아마도 당신고 싶지 않 파일을 엽니다.할을 저장할 수 있습니다.따라서 당신은 필요한 루트 privs 을 지속되지만 존재하는 파일을 열기 위해.

하지 않는 이유는 다음과 같습 Emacs 이 될 수 있습니다.그것은 부풀지 않고 충분히는.:)

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top