새 인스턴스 대신 이미 열려 있는 Emacs의 bash 명령줄에서 파일을 여는 방법은 무엇입니까?

새 인스턴스 대신 이미 열려 있는 Emacs의 bash 명령줄에서 파일을 여는 방법은 무엇입니까?

새 인스턴스 대신 이미 열려 있는 Emacs의 bash 명령줄에서 파일을 여는 방법은 무엇입니까? 내가 입력할 때

$ emacs file.txt

기존 Emacs 인스턴스에서 파일을 여는 대신 새 Emacs 인스턴스를 엽니다. 맥 OS X 10.6.8. 그리고

GNU Emacs 23.4.1 (x86_64-apple-darwin10.8.0, NS apple-appkit-1038.36)

beta.macosforge.org의 2012-02-27

답변1

당신이 찾고 있는 것은 emacs 서버 모드입니다. .emacs 파일에 다음 줄을 추가하세요:

(server-start)

그런 다음 emacsclient를 사용하여 파일을 엽니다.

emacsclient foobar.txt

보세요이것자세한 내용은 페이지를 참조하세요.


Emacs를 수동으로 시작하거나 자동 시작으로 설정하지 않으려면 실행 중인 서버에 연결을 시도하고(실행하여 emacsclient) 그렇지 않은 경우 emacs대신 실행하는 작은 함수를 작성할 수 있습니다. 이것을 쉘의 구성 파일(예 ~/.bashrc: )에 추가하십시오.

emacs(){ 
    emacsclient "$@" 2>/dev/null || /usr/bin/emacs "$@" 
}

이제 간단히 실행하면 emacs file서버가 시작되거나 기존 인스턴스에 연결됩니다.

답변2

다음 해결책을 어디서 찾았는지 기억나지 않습니다. 죄송합니다. 그러나 그것이 나에게 최적으로 작동했기 때문에 여기에 추가했습니다.

.emacsemacs 서버가 시작되었는지 확인하십시오 .

(server-start)

다음으로 .bashrc함수를 정의합니다.

function run_emacs
{
/usr/bin/emacsclient "$1" &
}

환경 변수를 설정합니다.

export EDITOR=emacsclient
export ALTERNATE_EDITOR=emacs

마지막으로 별칭을 정의합니다.

alias emacs='run_emacs'

관련 정보