2011-04-12 7 views
3

질문emacsclient로로드 할 사용자의 emacs init 파일을 어떻게 지정할 수 있습니까?

어떻게 하나는 emacsclient으로로드 할 파일을 초기화하기 사용자의 이맥스를 지정할 수 있습니다?

emacsclient는 '-u user'를 인식하지 못하며 '-a ALTERNATE-EDITOR'는 나를 인용하고 '-u user'를 제공하지 못합니다. 실행 예를 들어

:

/usr/bin/emacsclient -n -a '/usr/bin/emacs -u <username>' ~<username>/notes.txt 

반환

/usr/bin/emacsclient: error executing alternate editor "/usr/bin/emacs -u <username>" 

배경

나는 이맥스 버전 23.1.1와는 emacsclient 버전 23.1을 사용하고 있습니다.

이맥스 자체는 지정된 사용자의 init 파일을로드하기 위해 '-u user'를 지원합니다.

내가 타자가 파일 목록 다음에 x를

# a wrapper is needed to sandwich multiple command line arguments in bash 
# 2>/dev/null hides 
# "emacsclient: can't find socket; have you started the server?" 
emacs_wrapper() { 
    if [ 0 -eq $# ] 
    then 
    /usr/bin/emacsclient -n -a /usr/bin/emacs ~<username>/notes.txt 2>/dev/null & 
    else 
    /usr/bin/emacsclient -n -a /usr/bin/emacs $* 2>/dev/null & 
    fi 
} 
alias x='emacs_wrapper' 

이맥스

를 호출하는 내 별명에서 다음 bash는 기능이 파일을 사용 하나가 실행중인 경우
  • 기존 이맥스 서버에 연결

    , 그렇지 않으면 새 파일을 시작합니다.
  • 백그라운드 프로세스로 실행
  • 파일이 제공되지 않으면 파일 또는 내 노트 파일을 엽니 다.

이것은 나 자신으로 로그인 할 때 유용합니다. 그러나 많은 제작 상자를 사용하려면 프로덕션 사용자로 로그인해야합니다. 별칭을 bash 스크립트로 분리했기 때문에 단순히 실행하여 별칭 및 bash 기능을 사용할 수 있습니다.

. ~<username>/alias.sh 

불행하게도,이 내 이맥스 파일 (~ < 이름 > /.emacs) :(

이 문제는 날 미치게되었습니다를 사용하지 않습니다.

답변

3

당신이 할 수있는 경우 대체 에디터 명세에 커맨드 라인 인수를 포함시킨 다음 쉘 스크립트를 작성하여 대체 편집기 인수로 제공하십시오.

#!/bin/sh 
emacs -u (username) "[email protected]" 
+0

감사합니다. 그것은 잘됐다! – vlee

1

서버/클라이언트 모델의 요점은 기존 Emacs에 고유 한 구성 집합이 있다는 것입니다. 그런 다음 하나 이상의 클라이언트를 통해 연결합니다.

서버가 이미 메뉴 모음 (전역 설정)을 표시하도록 구성되어 있고 클라이언트가 표시하지 않겠다고 말하면 클라이언트는 어떻게해야합니까? 다른 고객이 말하는 것을 말하면 어떻게 표시합니까?

다른 이맥스 설정을 사용하려면 다른 이맥스 세션을 사용하십시오.