VS Code 版本:1.80.0(通用)
OS 版本:macOS 13.4.1(22F82)
重现步骤
- 将 Fish 设置为您系统的默认 shell。
- 安装 Tide 提示符。
- 在启动集成终端时观察损坏的提示符和错误消息:
fish: Unknown command: '_tide_item_pwd git'
~/.config/fish/functions/_tide_1_line_prompt.fish (line 4):
_tide_item_$item
^~~~~~~~~~~~~~~^
in function '_tide_1_line_prompt'
in command substitution
fish: Unknown command: '_tide_item_status cmd_duration context jobs'
~/.config/fish/functions/_tide_1_line_prompt.fish (line 11):
_tide_item_$item
^~~~~~~~~~~~~~~^
in function '_tide_1_line_prompt'
in command substitution
截图
- Shell 集成已启用,Tide 已安装(提示符损坏)
4条答案
按热度按时间r7s23pms1#
看起来这是由于 #185355 引起的,并破坏了依赖于声明 fish prompt 函数的文件中局部变量的提示符。使用以下
fish_prompt.fish
文件重现问题很简单:set TEST hello
function fish_prompt
echo $TEST
end
现在,在设置中禁用终端 › 集成 › Shell 集成:已启用。创建一个新的终端窗口,您应该看到 "hello" 作为提示符。再次启用 shell 集成并创建另一个新的终端窗口,提示符现在将为空。
编辑:具体来说,它正在复制
fish_prompt
函数,该函数破坏了对本地变量的链接。从手册页来看:使用 -c 复制函数仅复制函数的主体,并不附加来自原始函数的任何事件通知。
这意味着使用函数源代码文本创建了一个新的函数,而不是像 JavaScript 开发人员可能期望的那样复制引用。我认为 #185355 可能需要回退。
我已经测试过这一点,并确认这不是问题所在。所以还有其他事情在发生,需要进行更深入的调查,但我现在没有足够的时间。
8iwquhpp2#
是的,这里也存在同样的问题。
nfg76nw03#
Same issue, though in my case I'm seeing an extra newline at the end of the prompt.
IlanCosman/tide#433
waxmsbnn4#
为了补充这一点,我使用Hydro并刚刚注意到我遇到了这个问题。禁用shell集成可以解决问题。