MJV*_*MJV 11
抱歉,我不确定我是否明白你在问什么。但是,如果您的问题是如何abbr在启动时设置定义(以及在您可以存储在存储库中并在机器之间共享的文件中),您应该使用与Bash 中~/.config/fish/config.fishFish 等效的文件.bashrc。
由于缩写存储在全局/通用变量中,因此无需在每次打开终端窗口时重置它们,因此您可以在该配置文件中放置一个保护措施以防止每次都重置它们(稍微加快速度),如此处所述:https :
//github.com/fish-shell/fish-shell/issues/1976#issuecomment-168698602
编辑(2019 年 4 月):
在 Fish 更改了 3.0.0 版中通用变量的存储方式后,保护功能似乎可以防止在打开新终端窗口或重新启动机器后也包括在 abbr 列表中所做的更改。因此,我已从示例中删除了这些行。
例如我config.fish看起来像这样(对于 Git 命令):
echo -n Setting abbreviations...
abbr g 'git'
abbr ga 'git add'
abbr gb 'git branch'
abbr gbl 'git blame'
abbr gc 'git commit -m'
abbr gca 'git commit --amend -m'
abbr gco 'git checkout'
abbr gcp 'git cherry-pick'
abbr gd 'git diff'
abbr gf 'git fetch'
abbr gl 'git log'
abbr gm 'git merge'
abbr gp 'git push'
abbr gpf 'git push --force-with-lease'
abbr gpl 'git pull'
abbr gr 'git remote'
abbr grb 'git rebase'
abbr gs 'git status'
abbr gst 'git stash'
echo 'Done'
Run Code Online (Sandbox Code Playgroud)
我再次尝试钓鱼,找到了现在对我有用的解决方案。Fish 文档中也以这种方式进行了描述。
他们只是建议重置并一次又一次地fish_user_abbreviations 打电话。abbr(我什至没有使用if我的情况,也效果很好)
if status --is-interactive
set -g fish_user_abbreviations
abbr --add first 'echo my first abbreviation'
abbr --add second 'echo my second abbreviation'
# etcetera
end
Run Code Online (Sandbox Code Playgroud)
它实际上与MJV 建议的类似,但没有缓存的缺点。代价可能是启动速度有点慢,但我会密切关注这一点。我将使用该变体,因为文档中也提到了它。