有一个命令行工具,在终端下执行没问题。但是在eshell执行,售出一行额外的特殊字符,之后就卡住了。有人知道为什么吗?
如果用 shell-command-to-string 执行同样的命令,没有特殊字符,可以得到期望的输出结果。
有一个命令行工具,在终端下执行没问题。但是在eshell执行,售出一行额外的特殊字符,之后就卡住了。有人知道为什么吗?
如果用 shell-command-to-string 执行同样的命令,没有特殊字符,可以得到期望的输出结果。
像是终端的颜色代码。你试试 git externals --no-color
或者在 emacs -Q
上试试 eshell。
emacs -Q
输出同样结果。 --no-color
是 unkown flag
git
版本多少?externals
是哪里来的?--no-color
要放在后面。也可以试试 --color=nerver
。看看 git log -1 --color=nerver
和 git log -1 --color=always
有没有区别--color=never
vs --color=always
有区别的,后者有颜色输出。 eshell 中显示没问提。你可以试试在 eshell-preoutput-filter-functions
加入一个过滤函数,把终端色彩代码删掉,或者转换成 text property (参考 xterm-color-filter
,也许可以直接用)。
既然是内部工具,是不是可以去了解一下命令输出了什么?