gpt4 book ai didi

bash - 如果服务器已经在运行,如何从命令行启动 emacs 但使用 emacsclient?

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

我在 Ubuntu 下使用 emacs

如果我想编辑 a.txt 那么我要么点击 emacs 图标要么使用

$ emacs  --geometry 10x10 --fullscreen --no-splash ~/a.txt &

来自 bash。我的 .emacs 文件启动了 emacs 服务器。

如果我想从命令行编辑另一个文件,我使用

$ emacsclient -n ~/b.txt

将文件加载到现有的 emacs 中。

但我一直弄错了,而且一切都以各种方式崩溃了。

我如何创建一个 bash 命令“e”,检查 emacs 服务器是否已经在运行,并执行适当的命令?

尝试使用 emacsclient -a 开关总是会产生不希望的和不确定的行为。

如果它在控制台上运行时也能“做正确的事”,则加分。

最佳答案

到目前为止,.bashrc 中的这个函数定义似乎是一个完美的解决方案:

function e #open emacs in background and disown it, or if already running use emacsclient
{
echo "emacs function backgrounds and disowns emacs, or calls client if server already running; see .bashrc";
local FLUFFY="$@";
local SERVERSOCKET=/tmp/emacs${UID}/server ;
echo "trying to open: " $FLUFFY
echo " checking: " $SERVERSOCKET "for emacs server " ;
# test for existence of emacs server socket
if [ -e $SERVERSOCKET ]; then
echo "using emacsclient"
emacsclient -n $FLUFFY;
else
echo "starting emacs: make tea..."
emacs --geometry 10x10 --fullscreen --no-splash $FLUFFY & disown ;
fi;
}

源自这个咒语:

FLUFFY=~/b.txt ; if [ -e /tmp/emacs1000/server ]; then emacsclient -n $FLUFFY; else emacs  --geometry 10x10 --fullscreen --no-splash $FLUFFY & fi;

它通过检查用户 1000 的 emacs 服务器套接字是否存在来完成我想要的。

关于bash - 如果服务器已经在运行,如何从命令行启动 emacs 但使用 emacsclient?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24910937/

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