명령 줄에서 기존 emacs 프로세스에서 파일을 여는 방법은 무엇입니까?


14

특정 프로젝트와 관련된 모든 앱과 파일을 시작하는 몇 가지 스크립트가 있습니다. 그러나 단순히 현재 emacs가 요청 된 파일을 열지 않고 여러 emacs 인스턴스를 시작합니다. 오히려 현재 이맥스가 단순히 프로젝트 텍스트 파일을 새로운 버퍼로 열었습니다.

내가 어떻게 할 수있는 아이디어가 있습니까?


내 답변을 살펴보십시오 stackoverflow.com/a/38655619/2450748 비록 5 년 후 :)
nexayq

답변:


21

M-x server-startEmacs 세션 내부에서 emacsclient -n file1 file2 ...파일을 추가하여 기존 Emacs에 추가하십시오. -c새 창 (프레임)에서 파일을 여는 등의 추가 옵션이 있습니다 .


고마워요. 그것이 내가 알아야 할 것입니다. 아직 '정답'을 확인하고 있지 않습니다. 다른 사람들이 기여할 수있는 기회를주기 위해 항상 열어 두어야한다고 들었습니다. 그러나 나는 이미 당신의 대답을 일부 스크립트에 넣었습니다.
bev

일반적으로 (server-start)서버를 수동으로 시작하지 않고 .emacs 파일 에 넣으려고 합니다. 내가 사용하는 (and window-system (server-start))내가 터미널에서 이맥스를 실행 해요 경우 서버를 시작하지 않도록 할 수 있습니다.
CJM

현대 이맥스에서는 터미널에서도 유용합니다. -t옵션을 참조하십시오 .
geekosaur

@cjm-실제로 .emacs 파일에서 서버를 시작합니다. 난 그냥 그것을 사용하지 않았다 :-)
bev

5

넣어 (server-start)당신의 .emacs파일.

이것을 추가하십시오 ~/.bashrc

alias myedit='emacsclient --alternate-editor="" --no-wait $*' #quotes intentionaly left blank

그런 다음 myedit편집기 로 사용 하십시오. 이 -c옵션 을 사용하여 창을 불러 와야합니다.

그래서 당신은 이것을 할 수 있습니다 :

myedit -c a-file
run-script #that uses myedit

또는

run-script #that uses myedit
myedit -c

Richard, 의견을 보내 주셔서 감사합니다. 나는 아직도 당신의 대본으로 몇 가지를 당황하고 있습니다. 첫째, emacsclient에는 -c 옵션이 없으므로 bash 인 것으로 가정하지만 알지 못합니다. 둘째, 왜 이멕스를 대체 편집기로 사용하지 않습니까? 감사합니다
bev

# $ emacsclient --help .... 다음 옵션이 허용됩니다. ... -c, --create-frame 현재 Emacs 프레임을 사용하는 대신 새 프레임을 만듭니다 ... -a EDITOR, --alternate -editor = EDITOR 서버가 실행 중이 아닌 경우 폴백하는 편집기 EDITOR가 빈 문자열 인 경우 데몬 모드에서 Emacs를 시작하고 다시 연결하십시오.
ctrl-alt-delor

별명을 정의 할 때 위치 매개 변수를 사용할 필요가 없으며 실제로는 원하지 않을 수도 있습니다. 의 alias foo='echo bar $*'확장 방법을 고려하십시오 set quux; foo baz. 위치 매개 변수를 사용하려면 쉘 함수로 시도하십시오.myedit() { emacsclient … "$@"; }
Chris Johnsen
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.