魚の殻でエイリアスを定義する方法は?


204

魚のエイリアスをいくつか定義したいと思います。どうやらそれらを

~/.config/fish/functions

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


たった2票で下にある答えは、私の意見では正しいです。./config/fish/functionsでの自動ロードは、ファイルごとに1つの関数がある場合にのみ機能するようです。
mc_electron 2015

回答:


360

だけを使用してください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

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


3
また、fishでは、エイリアスは関数のシェルスクリプトラッパーにすぎないことにも注意してください。
user456584 2013年

@ user456584 ...そしてあなたが行うことができないので、それは、悪いにだalias local "set -l";-(

13
これをどのファイルに入れるかをメモして~/.config/fish/config.fishおきます。ターミナルを実行するたびにロードされるように、自分のファイルを入れました。
Ira Herman

"$argv"bashの場合のように、スペースを含む引数を処理するために引用符で囲む必要はありません"$@"か?
kyb

@kyb、いや、魚はそのようなbashよりも賢いです。実際、fishのすべての変数は配列です。Shell変数に移動し、Arraysサブセクションまで下にスクロールします
glenn jackman

117

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

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

ジェルブに感謝します。funcsaveの後で何らかの理由でエラーが発生しました:troff:fatal error:ca n't open `/usr/share/fish/man/save_function.1 ':No
such

7
を使用して関数を編集することもできますfunced。例えばfunced foo
デニス

14
実行funcsave {some_function_name}すると保存されます~/.config/fish/functions/{some_function_name}.fish
Hjulle 2014

55

後世のために、魚の別名は単なる関数です:

$ 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

9
関数を作成したら、次の操作を実行できますfuncsave foo。これにより、関数がに保存され~/.config/fish/functions/foo.fishます。魚は、新しいセッションから初めて呼び出されたときに、関数を自動的にロードします。
Lucretiel、2015年

1
alias foo="echo bar"はるかに簡単な解決策でした
Ronnie

16
  1. ない場合config.fish〜/ .configファイル/魚/、それを作ります。
  2. そこで関数を書くことができます。function name; command; end

15

としてファイルを保存します~/.config/fish/functions/{some_function_name}.fish。魚を起動すると、ファイルがオートロードされます。


14

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

vim〜/ .config / fish / config.fish

とそれを保存します :wq

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

config.fish

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

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



11

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

あなただけの設定もONE関数名と同じファイル名とファイル内の機能を+ .fish拡張子を追加します。

このようにして、ファイルの内容を変更すると、開いているターミナルで関数が再ロードされます(約1〜5秒の遅延が発生する場合があります)

コマンドラインで編集した場合

function name; function_content; end

その後

funcsave name

同じ順序で作成されたコンソールとカスタムのユーザー定義関数があります。


0

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.