提问人:Edgar P-Yan 提问时间:11/13/2023 最后编辑:LazyOneEdgar P-Yan 更新时间:11/13/2023 访问量:47
由于 Warp 对 .zshrc 的调整,MacOS 上的 WebStorm 终端无法正常工作
WebStorm's terminal on macOS is not working because of Warp's adjustments to .zshrc
问:
我现在使用 Warp(适用于 mac 的终端模拟器)几个月了,与 VSCode 结合使用,没有任何问题。Warp 有这个功能,可以“包装”它运行的 shell,使其对某些 GUI 功能更舒适,但要使它与子 shell 一起工作(即当你在另一个 zsh 中打开一个新的 zsh 时),你必须将这些行添加到:.zshrc
# Warp: this is used to warpify subshells.
# Learn more: https://docs.warp.dev/features/subshells.
printf '\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "zsh" }}\x9c'
VSCode 打开它的集成终端没有任何问题。但是 WebStorm 就是不起作用,它只是卡在空的终端窗口并永远保持这种状态:zsh
但是,如果我从 WebStorm 的终端中删除上述 Warp 线,就会开始工作,但现在 Warp 无法包装子外壳。.zshrc
这是一个已知问题吗?我试过谷歌搜索,但找不到任何相关的东西。我假设它的输出以某种方式破坏了 WebStorm,尽管 VSCode 工作得很好。有没有办法让 WebStorm 在某种程度上“忽略”正在写入输出的内容?printf ...
printf
答:
0赞
Edgar P-Yan
11/13/2023
#1
我发现了一个有点骇人听闻的解决方案:事实证明,WebStorm 为其集成的 shell 存储了一个环境变量。因此,只需在 之前添加一个条件,以检查它是否在 WebStorms 终端内运行:TERMINAL_EMULATOR=JetBrains-JediTerm
if
printf
# Warp: this is used to warpify subshells.
# Learn more: https://docs.warp.dev/features/subshells.
# Note: don't run it inside the WebStorms terminal, as it will break.
if [[ ! $TERMINAL_EMULATOR = "JetBrains-JediTerm" ]]
then
printf '\eP$f{"hook": "SourcedRcFileForWarp", "value": { "shell": "zsh" }}\x9c'
fi
它有效,但如果 WebStorm 有一些配置来处理这些类型的输出会更好。
评论