gpt4 book ai didi

fish - 如何在fish中设置环境变量?

转载 作者:行者123 更新时间:2023-12-01 05:20:01 53 4
gpt4 key购买 nike

我是 fish shell 的新手,只是想设置我的 $EDITOR 变量,这样它就可以在 session 和重新启动时保持不变。这是我到目前为止所尝试的:

  • 运行set -gx EDITOR vim从命令行。
  • 运行set -Ux EDITOR vim从命令行。
  • 运行那些以 set -e EDITOR 为前缀的命令取消设置任何先前的值。
  • 将上述命令添加到我的 ~/.config/fish/config.fish文件(它提示 set: Warning: universal scope selected, but a global variable “EDITOR” exists. )
  • 卸载 oh-my-fish并删除所有 fish 配置以从头开始。

  • 无论我做什么,EDITOR 变量总是以 /usr/bin/nano 结束。每当我打开一个新终端、启动一个新 session 或重新启动时。更奇怪的是在 ~/.config/fish/fishd.my-hostname , 我看到 SET_EXPORT EDITOR vim ,和纳米无关。这是某种 fish 的默认值吗?如果是这样,我该如何正确设置?

    编辑:我在 Antergos Linux 上运行 Fish 2.6.0。

    最佳答案

    首先,fish 配置文件是 ~/.config/fish/config.fish。编辑您命名的文件不会有任何效果。其次,fish 没有任何默认值,也没有设置 EDITOR 或 VISUAL 变量。因此,无论将其设置为/usr/bin/nano 都是您系统独有的自定义。

    如果您 set -Ux EDITOR vim并且不要在 config.fish 中设置它,它应该设置为 vim,即使它在 fish 启动时已经设置。运行该 set 命令然后执行 set -U | grep EDITORenv | grep EDITOR看到它被设置为通用变量并导出。现在输入 fish启动一个子shell。运行前两个命令,您应该会看到它仍然设置为相同的值。现在输入 set -U EDITOR nano在子 shell 中,后跟 exit .在较早的 shell 中,您现在应该看到 EDITOR 设置为 nano。

    就我个人而言,我不喜欢为此使用 uvar,因为目前它们是每台机器的。我只是做set -gX EDITOR (type -p vim)在我的 ~/.config/fish/config.fish 中。这可以确保如果我在安装了 ~/.config/fish 目录的新机器上启动 fish ,我会得到预期的默认值。

    不以这种方式使用 uvar 的另一个原因是解析顺序是本地范围、全局范围、通用范围。由于 fish 开始运行时导入的环境变量被放置在全局范围内,它们将隐藏您定义的 uvar。不要导出通用变量。不太可能产生预期的结果。只需set -gx config.fish 脚本中的 var。

    P.S.,在问这种性质的问题时,您应该始终包括相关的事实,例如您正在使用的操作系统和 fish 版本。

    关于fish - 如何在fish中设置环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45119425/

    53 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com