如何让Emacs shell命令发送桌面通知
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,小编给大家分享一下如何让Emacs shell命令发送桌面通知,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我总是使用 E
千家信息网最后更新 2026年11月01日如何让Emacs shell命令发送桌面通知
小编给大家分享一下如何让Emacs shell命令发送桌面通知,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
我总是使用 Eshell 来与操作系统进行交互,因为它与 Emacs 无缝整合、支持处理 (远程) TRAMP 文件,而且在 Windows 上也能工作得很好。
启动 shell 命令后 (比如耗时严重的构建任务) 我经常会由于切换缓冲区而忘了追踪任务的运行状态。
多亏了 Emacs 的 钩子 机制,你可以配置 Emacs 在某个外部命令完成后调用一个 elisp 函数。
我使用 John Wiegleys 所编写的超棒的 alert 包来发送桌面通知:
(require 'alert) (defun eshell-command-alert (process status) "Send `alert' with severity based on STATUS when PROCESS finished." (let* ((cmd (process-command process)) (buffer (process-buffer process)) (msg (format "%s: %s" (mapconcat 'identity cmd " ") status))) (if (string-prefix-p "finished" status) (alert msg :buffer buffer :severity 'normal) (alert msg :buffer buffer :severity 'urgent)))) (add-hook 'eshell-kill-hook #'eshell-command-alert)
alert 的规则可以用程序来设置。就我这个情况来看,我只需要当对应的缓冲区不可见时得到通知:
(alert-add-rule :status '(buried) ;only send alert when buffer not visible :mode 'eshell-mode :style 'notifications)
这甚至对于 TRAMP 也一样生效。下面这个截屏展示了失败的 make 命令产生的 Gnome 桌面通知。

以上是"如何让Emacs shell命令发送桌面通知"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
命令
桌面
篇文章
任务
内容
缓冲区
缓冲
操作系统
不怎么
函数
大部分
常会
情况
文件
无缝
更多
机制
状态
知识
程序
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
广州万易互联网科技有限公司
互联网核心科技是什么
高科技与互联网
广州互联网络科技有限公司
一五八零互联网科技
丰台科技园 互联网公司
海南购全球互联网科技
衡水科技产业互联网平台
蓝色互联网科技
互联网汽车科技小镇
以后互联网后是啥科技
国大互联网教育科技有限公司工作
朱啸虎曾投资哪些互联网科技企业
从那以后互联网科技有限公司
本届互联网大会上的黑科技
求路客互联网科技电话
三亚科技创新互联网基地
山东蛋芒互联网科技有限公司
青岛互联网科技园
高科技和互联网的现代国家
广东万易互联网科技有限公司惠州分公司
科技互联网龙头
广州互联网科技公司
苏州互联网科技贷款公司
互联网科技上市公司
碳银互联网科技有限公司
佰商互联网科技有限公司
想开互联网科技公司怎么样
广州新华互联网科技学校电竞方面
武汉亿视互联网科技有限公司