作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想编写一个脚本,将 emacs 服务器“链接”到某个目录。
为此,我需要检查所有现有服务器,以确定具有特定名称的服务器是否正在运行。然后,在使用 emacsclient 从该目录打开文件之前,脚本可以决定是否启动新服务器。
我一直在四处寻找如何列出运行服务器的现有 emacs,但没有成功。
有没有类似 emacs --list-servers
我可以用吗?
干杯。
最佳答案
Emacs 将所有正在运行的服务器的套接字文件存储在 ${TMPDIR}/emacs$(id -u)
中。 , 其中 $TMPDIR
默认为 /tmp
如果未设置。查找所有正在运行的服务器就像列出该目录中的所有套接字一样简单。
在 Bash 中,这看起来大致像
local serverdir="${TMPDIR:-/tmp}/emacs${UID}"
local -a servers
for file in ${serverdir}/*; do
if [[ -S ${file} ]]; then
servers+=("${file##*/}")
fi
done
echo "${servers[@]}"
servers
数组现在包含所有正在运行的 Emacs 服务器的名称,用于
emacslcient -s
.
import os
from stat import S_ISSOCK
serverdir = os.path.join(os.environ.get('TMPDIR', '/tmp'),
'emacs{0}'.format(os.geteuid()))
servers = [s for s in os.listdir(serverdir)
if S_ISSOCK(os.stat(os.path.join(serverdir, s)).st_mode)]
关于emacs - 如何从 shell 获取正在运行的 emacs 服务器的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521440/
我是一名优秀的程序员,十分优秀!