问题
如何指定用户的 emacs 初始化文件以使用 emacsclient 加载?
emacsclient 不理解“-u 用户”和“-a ALTERNATE-EDITOR”不允许我引用它并提供“-u 用户”。
例如,运行:
/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>"
背景
我正在使用 emacs 23.1.1 版和 emacsclient 23.1 版。
emacs 本身支持 '-u user' 来加载指定用户的 init 文件。
我在别名文件中使用以下 bash 函数来调用 emacs
# 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'
键入 x 后跟文件列表:
- 如果一个正在运行,则连接到现有的 emacs 服务器,否则启动一个新的
- 作为后台进程执行
- 如果未提供文件,则打开文件列表或我的笔记文件
当我以自己的身份登录时,这非常有用。但是,许多生产框要求我以生产用户身份登录。我已经将我的别名分离到一个 bash 脚本中,因此我可以通过简单地运行来获得我的别名和 bash 函数。
. ~<username>/alias.sh
不幸的是,这不会让我使用我的 .emacs 文件 (~<username>/.emacs) :(
这个问题一直让我发疯。