Fishエイリアスからエイリアス以外のコマンドにアクセスする

Fishエイリアスからエイリアス以外のコマンドにアクセスする

エイリアス内でエイリアスのないコマンドバージョンにどのようにアクセスできますか? Bashでは、alias ls='\ls -l'このエイリアス内の非エイリアスアクセスなどの操作を実行できます。魚にどうやってこれをすることができますか?lsls

今私は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

なぜなら

  1. Fishはalias機能を定義する安いラッパーです。
  2. 名前でコマンドを呼び出し、関数をスキップして組み込みコマンドを使用する方法は次のとおりです。command

だからあなたはできます

alias man='PAGER="bat -p" command man'

(同様にbuiltin foo組み込まれた「foo」を呼び出すと、すべての機能はスキップされます。)

この特定の場合の最善の解決策は、エイリアスを完全にスキップして$ MANPAGERを設定することです。

set -gx MANPAGER "bat -p"

また、関数を直接定義して、フィッシュエイリアス関連の問題を回避できます。

function man
     PAGER="bat -p" command man $argv
end

または使用略語代わりに。

関連情報