Programing

emacs 및 ssh로 원격 파일을 여는 가장 좋은 방법은 무엇입니까?

crosscheck 2020. 11. 10. 07:50
반응형

emacs 및 ssh로 원격 파일을 여는 가장 좋은 방법은 무엇입니까?


을 사용하여 원격 컴퓨터에 연결합니다 ssh user@192.168.1.5. 원격 컴퓨터에서 파일을 열어야 할 때 예를 들어

emacs /usr/share/nginx/html/index.html

index.html그러면 셸 에서 파일 이 열립니다 . 일부 emacs 명령은 작동하지만 다른 명령은 작동하지 않습니다. 예를 들어, C-w작동하지 않습니다. M-<작동하지 않습니다. 이 문제를 어떻게 해결할 수 있으며 emacs 및 ssh를 사용하는 가장 좋은 방법은 무엇입니까?

이 질문을 찾았 지만 더 혼란 스러웠습니다.


나는 일반적으로 로컬 Emacs 인스턴스에서 원격 파일을 여는 것을 선호합니다.

로컬 컴퓨터 에서 Emacs를 실행하는 동안 ssh를 통해 원격 파일을 여는 것은 약간 다른 구문을 제외하고는 다른 파일을 여는 것과 크게 다르지 않습니다 .

ssh의 경우 C-x C-f. 이제 입력하려는 minubuffer /ssh:user@host:/path/to/file에서 경로를 입력하기 시작하면 탭 완성이 작동합니다. 또한 선행 /문자에 유의하십시오 . 여기 에서 전체 문서를 참조 하십시오 .

귀하의 예에서는 다음과 같습니다.

C-x C-f /ssh:user@192.168.1.5:/usr/share/nginx/html/index.html

이제 로컬 구성 및 설치된 패키지 등을 사용하는 동안 Emacs에서 ssh를 통해 원격 파일을 편집 할 수 있습니다.


위의 답변에 추가하기 위해 자주 사용하는 컴퓨터에 대한 바로 가기를 작성할 수 있습니다.

(defun connect-remote ()
  (interactive)
  (dired "/user@192.168.1.5:/"))

이렇게하면 dired원격 시스템 에서 버퍼 가 열립니다 . 이 버퍼를 로컬 버퍼처럼 탐색 할 수 있습니다.

원격 컴퓨터에 ssh 키를 설정 한 경우 암호를 입력 할 필요도 없습니다.

원격 시스템이 여러 개인 경우 각 기능에 인식 할 수있는 이름 (예 :) connect-cupcake을 부여 connect-kitkat하고 smex패키지를 사용 하여 완료 할 수 있습니다.


그리고 "바로 가기"에 대한 @ abo-abo의 게시물에 추가하려면-

Emacs 책갈피를 사용하십시오. 원격 파일이나 디렉토리를 방문 할 때 일반적으로 북마크를 만드십시오. 그런 다음을 사용C-x r b하여 이름을 입력 한 원격 북마크로 이동합니다 (완성 포함).

Bookmark +사용하는 경우 원격 책갈피가에서 특별히 강조 표시되어 *Bookmark List*보다 쉽게 ​​인식 할 수 있습니다. su또는 sudo( root) 로 액세스해야하는 원격 책갈피 는 다르게 강조 표시됩니다.

Dired +사용하는 경우 Dired 에서 포함 된 원격 디렉토리를 방문하여 표시 하고을 눌러 여러 원격 파일 또는 디렉토리를 빠르게 북마크 할 수도 있습니다 C-x b. 책갈피 이름을 지정할 필요가 없습니다. 파일 이름을 따서 명명됩니다. 원격 파일을 탐색하는 데 이러한 책갈피를 사용하지 않더라도 Bookmark + 태그 와 함께 사용 하여 파일을 구성하고 하위 집합에서 작업 할 수 있습니다.

당신이 사용하는 경우 차가워을 당신이 즐겨 찾기로 이동하는 명령을 사용할 때마다 다음, 당신은 타격에 의해 원격있는 것들에 완료 후보 좁힐 수 있습니다 C-M-@완료시를.


원래 포스터는 루트 사용자로 원격 파일을 여는 데 관심을 표명했습니다. 다음 명령을 사용하여 수행 할 수 있습니다.

C-x C-f /ssh:you@remotehost|sudo:remotehost:/path/to/file RET

더 많은 문서는 https://www.emacswiki.org/emacs/TrampMode#toc14 에서 찾을 수 있습니다.


원격 시스템에 초점을 맞춘 간단한 답변 :

원격 시스템에서 모든 emacs 작업을 수행하려면 다음을 사용합니다.

ssh -X username@hostname

그런 다음 원격 세션에서 emacs를 실행하여 로컬 컴퓨터에 다시 표시합니다. 오래된 질문이지만 완전성을 위해 이것을 던지고 싶었습니다. 몇 가지 xhost / X 구성 문제가 있지만 많은 네트워크에서 이것은 즉시 작동합니다!


emacs 용 SSH 모드 는 여러분이 찾고있는 것입니다.

일단 설정을 마치면

M-x ssh RET hostname RET

그런 다음 암호를 입력하라는 메시지가 두 번 표시됩니다 (명령 줄에 한 번, 파일로드에 한 번).

대부분의 경우 다른 셸처럼 처리 할 수 ​​있습니다 (비대화 형 및 몇 가지 사소한 차이점이 있지만 그게 다입니다).

어떤 디렉토리에 있는지 추적하므로보고있는 디렉토리에서 파일을 열려면 자동으로 올바른 디렉토리에서 시작하고 파일 이름을 입력하기 만하면됩니다.

Emacs Wiki 에도 더 많은 정보가 있습니다.

참고 URL : https://stackoverflow.com/questions/20624024/what-is-the-best-way-to-open-remote-files-with-emacs-and-ssh

반응형