首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何识别正在使用的终端模拟器?

如何识别正在使用的终端模拟器?
EN

Stack Overflow用户
提问于 2019-02-18 12:52:17
回答 1查看 256关注 0票数 2

我正在开发一个库,它需要识别运行中的终端模拟器,以便输出特定于模拟器的转义代码序列。

例如,iTerm 2 使用 --以下专有序列:

代码语言:javascript
运行
复制
ESC ] 50 ; CurrentDir=/path/to/dir BEL

ConEmu 使用则具有以下专有序列:

代码语言:javascript
运行
复制
ESC ]  9 ; 9 ; C:\path\to\dir BEL

现在,我需要查询终端(要么使用环境变量,要么使用转义序列),以便输出正确的终端特定代码。

如何可靠地检测和识别正在运行的终端模拟器?

EN

回答 1

Stack Overflow用户

发布于 2019-02-18 14:47:25

答案取决于。

您可以尝试检查环境变量,例如ConEmuServerPID。但这可能不可靠,因为当进程实际在ConEmu b之外运行时,变量可能是从父进程继承的)该变量在某些情况下可能没有被设置,例如在ssh某个地方。

您可以使用ESC [ > c reports ESC > 0 ; 136 ; 0 c请求终端“版本”。但当然,这个136并不是ConEmu的保证。

此外,您还可以使用ANSI序列执行IsConEmu GuiMacro。但是,很可能在ssh-ing时您无法检查结果。

您可以调用ConEmuC.exe -IsConEmu,但不能在ssh中这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54747768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档