0

问题:

 ⚙  ~  fish --version
fish, version 2.5.0-238-ga811ae2
 ⚙  ~  echo $FISH_VERSION 
2.2.0

尝试调试:

 ⚙  ~  exec fish
set: Invalid character “.” in variable name. Only alphanumerical characters and underscores are valid in a variable name.
/usr/local/share/fish/functions/setenv.fish (line 10):                 set -gx $v $$v
                                                                       ^
in function “setenv”
        called on line 46 of file ~/.config/fish/config.fish
        with parameter list “LANG en_US.UTF-8”

from sourcing file ~/.config/fish/config.fish
        called during startup

Welcome to fish, the friendly interactive shell
Type help for instructions on how to use fish
 ~  echo $FISH_VERSION 
2.5.0-238-ga811ae2

我从apt安装了fish 2.2。然后后来直接从github repo安装了fish 2.5。但它仍在使用旧鱼,我不确定这里发生了什么。

4

1 回答 1

1

这里至少有两个问题:

第一个是你还在执行老鱼。原因可能是您将新鱼安装到 /usr/local 中(很可能是因为您使用 安装它make install,默认为该目录),但没有调整您的 shell 设置以指向新的。

要确认这一点,请运行type -a fish. 它应该显示 fish 在 /usr/bin 和 /usr/local/bin 中。要解决此问题,有两种解决方案:

或者最好


第二个问题是那个setenv错误。您的 config.fish 中可能有类似setenv "LANG en_US.UTF-8"(带引号)的内容。这将产生那个丑陋的错误,并且不会像你想要的那样设置变量。解决方案是

  • 使用set -gx LANG en_US.UTF-8或至少setenv LANG en_US.UTF-8(不带引号)

或者

  • 停止设置 $LANG - 自 2.4.0 版以来的 fish 将在没有收到语言环境时自行设置语言环境。
于 2017-03-21T11:56:06.477 回答