鱼是运行中config.fish的缩写
Fish is running abbreviations in config.fish
我刚刚了解了 abbr,所以我将所有别名从单独的函数切换为 abbr
调用。根据文档,我假设我可以通过将它们放在 if status --is-interactive
检查中将它们全部添加到 ~/.config/fish/config.fish
中,但是当我启动 fish 时,我看到它试图 运行 几个命令。知道这将如何发生吗?下面是我的 config.fish
的最小版本,它重现了错误。
set PATH ~/.node/bin $PATH
set PATH ~/bin/ $PATH
set -x NODE_TLS_REJECT_UNAUTHORIZED 0
set JAVA_HOME $JDK_HOME
set GRADLE_USER_HOME ~/.gradle
if status --is-interactive
abbr --add -g build_clean ./gradlew clean build copyEar && docker-compose down --remove-orphans && docker-compose up --build
end
这导致
~/.config/fish/config.fish (line 8): The file 'docker-compose' is not executable by this user
abbr --add -g build_clean ./gradlew clean build copyEar && docker-compose down --remove-orphans && docker-compose up --build
^
from sourcing file ~/.config/fish/config.fish
called during startup
如果包含 shell 元字符,请引用缩写扩展。话虽如此,你遇到麻烦的缩写似乎更适合作为一个函数。缩写最适合这样的情况:您希望将非常短的内容扩展为您经常执行的中等长度的命令,并且希望在您的历史记录中进行扩展而不是函数名称。例如,gcm
=> git checkout master
.
我刚刚了解了 abbr,所以我将所有别名从单独的函数切换为 abbr
调用。根据文档,我假设我可以通过将它们放在 if status --is-interactive
检查中将它们全部添加到 ~/.config/fish/config.fish
中,但是当我启动 fish 时,我看到它试图 运行 几个命令。知道这将如何发生吗?下面是我的 config.fish
的最小版本,它重现了错误。
set PATH ~/.node/bin $PATH
set PATH ~/bin/ $PATH
set -x NODE_TLS_REJECT_UNAUTHORIZED 0
set JAVA_HOME $JDK_HOME
set GRADLE_USER_HOME ~/.gradle
if status --is-interactive
abbr --add -g build_clean ./gradlew clean build copyEar && docker-compose down --remove-orphans && docker-compose up --build
end
这导致
~/.config/fish/config.fish (line 8): The file 'docker-compose' is not executable by this user
abbr --add -g build_clean ./gradlew clean build copyEar && docker-compose down --remove-orphans && docker-compose up --build
^
from sourcing file ~/.config/fish/config.fish
called during startup
如果包含 shell 元字符,请引用缩写扩展。话虽如此,你遇到麻烦的缩写似乎更适合作为一个函数。缩写最适合这样的情况:您希望将非常短的内容扩展为您经常执行的中等长度的命令,并且希望在您的历史记录中进行扩展而不是函数名称。例如,gcm
=> git checkout master
.