MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Fishの基礎 - 補完のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Fishの基礎 - 補完
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Fishシェルの補完システムは非常に強力で柔軟性がある。<br> <br> Fishの補完システムを理解するには、これらの概念を理解して、実際に補完スクリプトを記述することが重要である。<br> また、既存の補完スクリプト (~/.config/fish/completionsディレクトリ) を参考にする。<br> <br> 補完システムの詳細を知りたい場合は、Fishの公式サイトにある[https://fishshell.com/docs/current/completions.html# Writing your own completions]を参照すること。<br> <br><br> == 補完関数 == <code>complete</code>コマンドを使用して、補完関数を定義する。<br> <br> <syntaxhighlight lang="fish"> # 基本構文 complete -c <コマンド> <オプション> -a '<補完候補>' -d '<補完候補の説明>' </syntaxhighlight> <br> * -c <コマンド> *: 補完を定義するコマンドを指定する。 * -a '<補完候補>' または -a "<補完候補>" *: 補完候補を指定する。 * -d '<補完候補の説明>' または -d "<補完候補の説明>" *: 補完候補の説明を提供する。 <br><br> == オプションの補完 == コマンドのオプションを補完する場合は、<code>-s</code> (短いオプション)、または、<code>-l</code> (長いオプション) を使用する。<br> <br> <syntaxhighlight lang="fish"> complete -c cat -s n -l number -d "Enumerate lines" </syntaxhighlight> <br><br> == 条件付き補完 == Fishでは、条件に基づいて異なる補完を定義することができる。<br> <br> <syntaxhighlight lang="fish"> if command -q gcc complete -c gcc -s O -a "0 1 2 3" -d "Optimization level" end </syntaxhighlight> <br><br> == 動的補完 == 補完候補を動的に生成する場合は、コマンド置換を使用する。<br> <br> <syntaxhighlight lang="fish"> complete -c ssh -a "(command cat ~/.ssh/config | string match -r '^Host\s+(\S+)' | string replace -r '^Host\s+' '')" -d "Known host" </syntaxhighlight> <br><br> == 補完スクリプト == 複雑な補完ロジックは、別のファイルに記述して、<code>source</code>コマンドで読み込むことができる。<br> <br> <syntaxhighlight lang="fish"> source ~/.config/fish/completions/mycommand.fish </syntaxhighlight> <br><br> == 補完の優先順位 == <code>-n</code>オプションを使用して、特定の状況下でのみ補完を適用できる。<br> <br> <syntaxhighlight lang="fish"> complete -c git -n "__fish_use_subcommand" -a clone -d "Clone a repository" </syntaxhighlight> <br><br> == サブコマンドの補完 == 多くのコマンドはサブコマンドを持つ。<br> これらは、一般的に、<code>__fish_use_subcommand</code>関数を使用して処理する。<br> <br> <syntaxhighlight lang="fish"> complete -c git -f -n "__fish_use_subcommand" -a "clone" -d "Clone a repository" </syntaxhighlight> <br> <syntaxhighlight lang="fish"> complete -c git -f -n "__fish_use_subcommand" -a "commit" -d "Record changes to the repository" </syntaxhighlight> <br><br> == 組み込み関数 == Fishには補完を支援するための多くの組み込み関数がある。<br> <br> * <code>__fish_complete_directories</code> *: ディレクトリの補完 * <code>__fish_complete_path</code> *: ファイルパスの補完 * <code>__fish_complete_groups</code> *: グループ名の補完 <br><br> == 補完の削除 == 特定のコマンドの全ての補完を削除することができる。<br> <syntaxhighlight lang="fish"> complete -c <コマンド> -e </syntaxhighlight> <br><br> == 補完のテスト == 特定のコマンドの補完をテストできる。<br> <br> <syntaxhighlight lang="fish"> fish_complete_path <コマンド> </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:シェルスクリプト]]
Fishの基礎 - 補完
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse