한 컴퓨터에서 emacs를 실행할 수 있기를 원합니다.
server $ emacs --daemon
그런 다음 다른 곳에서 연결하십시오.
local $ emacsclient -c server
이게 가능해? 그렇다면 어떻게?
한 컴퓨터에서 emacs를 실행할 수 있기를 원합니다.
server $ emacs --daemon
그런 다음 다른 곳에서 연결하십시오.
local $ emacsclient -c server
이게 가능해? 그렇다면 어떻게?
답변:
emacsclient를 사용하여 원격 컴퓨터에서 실행중인 Emacs 인스턴스에 연결할 수 없습니다. 이 클라이언트-서버 개념은 네트워크 노드가 아닌 (로컬) 프로세스와 관련이 있습니다. 그러나, 당신은 할 수 원격 컴퓨터에 로그인하기 위해 다양한 네트워크 기술을 사용하여,이 실행 이맥스 서버에 연결하고 로컬는 emacsclient의 화면을 표시합니다. 사용되는 운영 체제에 따라 SSH (터미널 / X- 전달), VNC, RDP 등을 통해 네트워킹을 수행 할 수 있습니다.
업데이트 :
일부 사람들이 지적했듯이 emacsclient에는 실제로 TCP를 통해 서버에 연결하는 옵션이 있습니다. 그러나 emacsclient는 원격으로 사용하기위한 것이 아니며 TCP 소켓 옵션은 비 UNIX 시스템 (예 : Windows와 같이 UNIX 도메인 소켓을 사용할 수없는 운영 체제)과의 호환성을 위해 필요합니다.
이것은 당신이 원하는 것이 아니라 어떤 식 으로든 도움이 될 수 있는지를 대비 한 것입니다.
나는 보통 Vagrant로 부트 스트래핑 된 가상 머신 내부에서 작업 ~/.emacs.d
하며 내 컴퓨터 (로컬)와 가상 머신 (원격) 사이에 디렉토리를 동기화하여 Vagrantfile
파일에 다음을 넣습니다 .
config.vm.synced_folder "~/.emacs.d", "/home/vagrant/.emacs.d"
또한 내 Emacs 설정은 시작할 때 서버를 자동으로 시작합니다 :
(require 'server)
(setq server-use-tcp t
server-socket-dir "~/.emacs.d/server")
(unless (server-running-p)
(server-start))
따라서 가상 머신 내에서 Emacs 서버를 시작하면 다음과 같이 연결할 수 있습니다.
ssh -Y -i ~/.vagrant.d/insecure_private_key "<virtual machine hostname>" 'emacsclient -c -f ~/.emacs.d/server/server'
가상 머신 호스트 이름 은 ~ / .ssh / config에서 구성한 가상 머신의 호스트 이름입니다.
Host <virtual machine hostname>
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile /home/anler/.vagrant.d/insecure_private_key
IdentitiesOnly yes
LogLevel FATAL
ForwardAgent yes
참고 : 가상 컴퓨터 내에서 Emacs 서버를 시작하기 전에 ~/.emacs.d/server/server
파일이 존재하지 않는지 확인합니다 (그렇지 않으면 제거하는 경우) 그렇지 않으면 작동하지 않습니다.
.ssh/config
. 을 지정하면 Host
됩니다. 의심스러운 경우 명령의 출력을 사용 vagrant ssh-config
하여 ~/.ssh/config
파일 을 설정할 수 있습니다.