我想在Cool Retro Terminal中使用fish,但是我通常使用的提示符有unicode字符,而retro终端中的字体不支持这些字符。我有我的fish_prompt函数检查$simple_prompt是否为1,我知道它是有效的,但我需要一种方法来设置变量,只针对那个终端实例,在retro terminal中使用startup command选项。
到目前为止,最接近的是fish -c "set -gx simple_prompt 1; fish",但这会将变量导出到系统上的所有shell实例,并使所有这些实例的提示都很简单。fish -c "set -g simple_prompt 1; fish"不起作用。

最佳答案

预计set -g simple_prompt 1对您启动的下一个fish实例不可见。全局变量仅对当前shell实例可见。如果你正在使用的终端设置了一些环境变量,允许你确定fish正在特定终端内运行,我将使用这些信息。例如,macOS上的iTerm2导出ITERM_PROFILE和其他四个唯一的env vars。如果Cool Retro终端没有做到这一点,也许还有其他方法可以检测到该终端类型。它可能与检查TERM变量一样简单。
如果前面提到的解决方案不是一个选项,那么唯一的解决方案是一个环境变量,就像在第一个解决方案中一样。因为你说它将这个变量导出到所有的fish实例,我怀疑你没有准确描述你在做什么。因为如果将该命令设置为Cool Retro终端应用于启动shell的命令,则只会影响在该终端中运行的fish实例。这就是你想要的。

关于linux - 如何使用可变预设启动 shell ( fish ),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44169923/

10-16 20:29