如何从该命令的别名中访问该命令的非别名版本?在 bash 中,我可以执行类似访问此别名内的alias ls='\ls -l'
非别名的操作。我怎样才能在鱼身上做到这一点?ls
ls
现在我正在使用env
该命令获取可执行文件,但是有更好的方法吗?
alias man='PAGER="bat -p" /usr/bin/env man'
答案1
对于简单的情况,鱼alias
会自己解决。
你可以这样做alias ls='ls -l'
,它会产生以下函数:
function ls --description 'alias ls=ls -l'
command ls -l $argv
end
因为
- Fish
alias
是一个定义函数的俗气包装器 - 通过名称调用命令、跳过函数和内置命令的方法是使用
command
所以你可以做
alias man='PAGER="bat -p" command man'
(类似地,builtin foo
调用内置“foo”,跳过任何函数)
在这种特定情况下,最好的解决方案是仅设置 $MANPAGER,完全跳过别名:
set -gx MANPAGER "bat -p"
此外,您可以通过自己直接定义函数来避免 Fish 别名的任何问题:
function man
PAGER="bat -p" command man $argv
end
或使用缩写反而。