gpt4 book ai didi

bash - 如何指定用户的 emacs init 文件以使用 emacsclient 加载?

转载 作者:行者123 更新时间:2023-11-29 09:26:48 26 4
gpt4 key购买 nike

问题

如何指定用户的 emacs init 文件以使用 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 文件 (~ /.emacs) :(

这个问题一直让我抓狂。

最佳答案

如果您不能在您的备用编辑器规范中包含命令行参数,那么只需编写一个 shell 脚本来为您执行此操作,并将其作为备用编辑器参数提供。

#!/bin/sh
emacs -u (username) "$@"

关于bash - 如何指定用户的 emacs init 文件以使用 emacsclient 加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5640397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com