我只是切换到zsh,现在调整别名,其中打印一些文本(彩色)和命令.
我一直在尝试使用$ fg数组var,但是有副作用,所有命令在执行之前都会打印出来.
如果我只是在终端中使用颜色代码测试回声,则会发生同样的情况:
echo $fg_bold[blue] "test"
]2;echo "test" test #the test is in the right color
Run Code Online (Sandbox Code Playgroud)
为什么命令打印之前要做它应该做的事情?(我确切地说,只要打印出任何可用的命令就不会发生这种情况)我是否要为zsh设置一个特定选项,使用带有特殊参数的echo来获取它?
首先执行命令(将其输出保留在某处),然后发出echo.我能想到的最简单的方法是:
echo $fg[red] `ls`
Run Code Online (Sandbox Code Playgroud)
编辑:好的,所以你的麻烦是在实际输出之前的一些垃圾echo.你有一些有趣的配置导致你的麻烦.
怎么做(检查配置除外):
zsh -f(它将跳过任何配置),然后重新尝试echo命令:( autoload colors; colors; echo $fg_bold[red] foo这应该表明问题出在你的配置中).precmd在每个命令之前执行的函数(以某种方式失败).试试which precmd.如果没有定义,请尝试echo $precmd_functions(precmd_functions是在每个命令之前执行的函数数组).知道哪个是正在执行的代码将帮助您在配置中搜索它(我假设您刚刚从其他人那里获取).如果我不得不猜测,我会说你在使用oh-my-zsh而不知道你打开了什么(这是一个无穷无尽的麻烦来源).
| 归档时间: |
|
| 查看次数: |
6964 次 |
| 最近记录: |