web-dev-qa-db-ja.com

魚のbashエイリアスにアクセスする方法

Fishのbashエイリアスが見つからないので、それらすべてを手動でfish関数に変換したくありません。魚の中からそれらすべてにアクセスする方法は?

ボーナスポイント:

  • ソリューションは、次のような反復プロセスをサポートします。bashでエイリアスを簡単に変更し、それらを魚に再変換/再インポートできます。
  • ソリューションはbash関数もインポートします
5
hoijui

次に、bashエイリアスを魚にインポートするためのより簡単なスクリプトを示します。 fish_import_bash_aliases.fishフォルダーの下に次の内容のファイル~/.config/fish/functionsを作成します。

function fish_import_bash_aliases \
    --description 'import bash aliases to .fish function files.'
    for a in (cat ~/.bash_aliases  | grep "^alias")
        set aname (echo $a | sed 's/alias \(.*\)=\(\'\|\"\).*/\1/')
        set command (echo $a | sed 's/alias \(.*\)=\(\'\|\"\)\(.*\)\2/\3/')
        if test -f ~/.config/fish/functions/$aname.fish
            echo "Overwriting alias $aname as $command"
        else
            echo "Creating alias $aname as $command"
        end
        alias $aname $command
        funcsave $aname
    end
end

スクリプトファイルの準備ができたら、fish Shellでfish_import_bash_aliasesを実行します。これにより、~/.config/fish/functionsの下の各bashエイリアスにfish関数スクリプトが作成されます。

1
Zheng Qu