gpt4 book ai didi

emacs - 如何告诉 shell 它是在 Emacs 中运行的?

转载 作者:行者123 更新时间:2023-12-04 23:07:47 24 4
gpt4 key购买 nike

我有一个程序,它使用 ansi 终端代码来做一些花哨的事情,比如在终端中运行时删除行。当它在 Emacs 中运行时,它显然会搞砸缓冲区。

该程序有一个不使用这些选项的选项,所以我希望能够在 Emacs 中的 shell 中运行时打开该选项。

我将这个程序作为 Makefile 的一部分执行,无论是从终端还是在 Emacs 中使用编译模式。

那么有没有办法让编译模式设置一个环境变量(或类似的东西),以便在 Makefile 中轻松捕获以在适当的时候使用该选项?

在 make 命令中手动添加一个额外的参数(在任何一种情况下)是我试图避免的。

最佳答案

Emacs 也会设置 $INSIDE_EMACS 环境变量。如果您不仅需要知道是否在 emacs 中运行 shell session ,还需要知道您正在使用哪个版本的 emacs 以及如何运行 shell session ,这对您很有用(这有助于了解您是否在脚本中重新使用 ansi 控制字符)。这是我在 Emacs 中的 bash shell 中得到的结果(使用“shell”):

~ $ echo $INSIDE_EMACS
24.0.50.3,comint
~ $

当我在 Emacs 的 Bourne shell 中时,情况相同(使用“ansi-term”):
sh-3.2$ echo $INSIDE_EMACS
24.0.50.3,term:0.96
sh-3.2$

这是我从终端(不在 Emacs 中)执行相同操作时得到的结果:
~ $ echo $INSIDE_EMACS

~ $

关于emacs - 如何告诉 shell 它是在 Emacs 中运行的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7130073/

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