web-dev-qa-db-ja.com

フィッシュシェルでエイリアスを定義する方法は?

魚にいくつかのエイリアスを定義したいと思います。どうやらで定義することができるはずです

~/.config/fish/functions

ただし、シェルを再起動しても自動ロードされません。何か案は?

175
armandino

aliasを使用してください。基本的な例を次に示します。

# Define alias in Shell
alias rmi "rm -i"

# Define alias in config file
alias rmi="rm -i"

# This is equivalent to entering the following function:
function rmi
    rm -i $argv
end

# Then, to save it across terminal sessions:
funcsave rmi

この最後のコマンドは、ファイル~/.config/fish/functions/rmi.fishを作成します。

興味のある人は 公式マニュアル で魚の別名についてもっと知りたいかもしれません。

311
Bozhidar Batsov

これが、新しい関数fooを定義し、実行し、永続的に保存する方法です。

sthorne@pearl~> function foo
                    echo 'foo was here'
                end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo
113
Jerub

子孫にとって、魚のエイリアスは単なる機能です。

$ alias foo="echo bar"
$ type foo
foo is a function with definition
function foo
    echo bar $argv; 
end

削除するには

$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”
52
glenn jackman
  1. 〜/ .config/fish /config.fishがない場合は、作成します。
  2. そこにあなたの関数を書くことができます.function name command end
16
seaslee

ファイルを~/.config/fish/functions/{some_function_name}.fishとして保存すると、fishの起動時に自動ロードされます。

14
martisj

〜/ .config/fish/functionsから関数を適切にロードするには

ファイル内でONE関数のみを設定し、関数名と同じ.file拡張子を追加してファイルに名前を付けることができます。

このようにして、開いている端末でファイルの内容を変更すると関数がリロードされます(遅延が1〜5秒発生する可能性があることに注意してください)

そのようにコマンドラインで編集する場合

function name; function_content; end

それから

funcsave name

コンソールでユーザー定義関数を使用し、同じ順序でカスタム作成しました。

10
pawelkl

fishは、〜/ .config/fish/config.fishでコマンドを実行することから開始します。存在しない場合は作成できます。

ステップ1。構成ファイルを作成します(.bashrcなど)

config.fish

ステップ2。このようにエイリアスを書くだけです。

エイリアスrm = "rm -i"

8
CookAtRice

abbrの代わりにaliasを追加すると、オートコンプリートが改善されます。魚ではabbrはbashエイリアスの動作により密接に一致します。

abbr -a gco git checkout

-addは、git checkoutに展開される新しいabbreviation gcoになります。

これが結果のオートコンプリート機能のビデオデモです

2
Tobias Mühl

〜/ .config/fish/functionsにmkalias.fishという関数を作成し、これを

function mkalias --argument key value
  echo alias $key=$value
  alias $key=$value
  funcsave $key
end

これにより、エイリアスが自動的に作成されます。

1
Mike