「シェルパッケージガイドライン」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リンクを修正)
 
27行目: 27行目:
 
== シェルの補完機能 ==
 
== シェルの補完機能 ==
   
ほとんどのシェルは、いくつかの一般的なコマンドの補完セット内蔵しており、同時に他のパッケージによって提供れるかもしれない関数のために少なくとも1つのシステムディレクトリをスキャンします。の表は、パッケージが補完ファイルを置場所と、そのファイル名をまとめたものです。
+
ほとんどのシェルは、いくつかの一般的なコマンドに対してビルトインの補完機能提供しており、さに少なくとも1つのシステムディレクトリをスキャンして、他のパッケージが提供する可能性のある関数を検出します。以下の表は、パッケージが補完ファイルをできる場所と、ファイル名について概要です。
   
 
{| class="wikitable"
 
{| class="wikitable"
33行目: 33行目:
 
|-
 
|-
 
| [[Bash]] || {{ic|/usr/share/bash-completion/completions}} || {{ic|''binary_name''}}
 
| [[Bash]] || {{ic|/usr/share/bash-completion/completions}} || {{ic|''binary_name''}}
  +
|-
  +
| [[Elvish]] || {{ic|/usr/share/elvish/lib/}} || {{ic|''binary_name''.elv}}
 
|-
 
|-
 
| [[fish]] || {{ic|/usr/share/fish/vendor_completions.d}} || {{ic|''binary_name''.fish}}
 
| [[fish]] || {{ic|/usr/share/fish/vendor_completions.d}} || {{ic|''binary_name''.fish}}
39行目: 41行目:
 
|}
 
|}
   
その他のシェル
+
その他のシェル:
   
* [[コマンドラインシェル#代替シェル|Elvish]] はいくつかのデフォルトの補完を提供しますが、補完を提供するシステム全体のディレクトリはま [[https://github.com/elves/elvish/issues/1004] ありません。Elvish シェル補完関数を生成するパッケージの場合、つの解決策{{ic|/usr/share/elvish/completions/''binary_name''.elv}} パッケージ化し{{ic|post_install()}} 関数を使用して、ユーザー {{ic|$XDG_CONFIG_HOME/elvish/lib/}} ディレクシンボリックリンクできるように tip を表示することでしょう
+
[[Nushell]] はデフォルトの補完機能いくつか提供していますが、まだ補完ファイルを提供するためのシステム全体のディレクトリはありせん [https://github.com/nushell/nushell/issues/11337] Nushell 補完関数を生成するパッケージの場合、1つの解決策として、{{ic|/usr/share/nushell/autoload/''binary_name''.nu}} パッケージ化し{{ic|post_install()}} 関数を使用して、ユーザー {{ic|use /path/to/file}} ステートメンを設定ファイル追加するように示する方法があります
   
 
{{Tip|一般的なルールとして、パッケージはシェルに ''depend'' や ''optdepends'' を持つべきではありません。たまたまそのための補完を提供したからといって、パッケージの依存関係を示唆するものではありません。補完機能はデフォルトのシェルパッケージには存在しませんが、補足の収集パッケージ {{Pkg|bash-completion}} や {{Pkg|zsh-completions}} によって ''提供'' されます。これらのパッケージに補完ファイルが存在する場合、それらを {{ic|optdepends}} に追加してください。}}
 
{{Tip|一般的なルールとして、パッケージはシェルに ''depend'' や ''optdepends'' を持つべきではありません。たまたまそのための補完を提供したからといって、パッケージの依存関係を示唆するものではありません。補完機能はデフォルトのシェルパッケージには存在しませんが、補足の収集パッケージ {{Pkg|bash-completion}} や {{Pkg|zsh-completions}} によって ''提供'' されます。これらのパッケージに補完ファイルが存在する場合、それらを {{ic|optdepends}} に追加してください。}}

2025年2月10日 (月) 01:57時点における最新版

関連記事

インストール方法

ユーザが シェルの変更 を行うには、シェルを /etc/shells に記述する必要があります。ほとんどのシェルパッケージには以下のようなインストールスクリプトがあります。

shellname.install
post_install() {
    grep -Fqx /bin/shellname /etc/shells || echo /bin/shellname >>/etc/shells
    grep -Fqx /usr/bin/shellname /etc/shells || echo /usr/bin/shellname >>/etc/shells
}

post_upgrade() {
    post_install
}

post_remove() {
    sed -i -r '/^(\/usr)?\/bin\/shellname$/d' etc/shells
}

シェルの補完機能

ほとんどのシェルは、いくつかの一般的なコマンドに対してビルトインの補完機能を提供しており、さらに少なくとも1つのシステムディレクトリをスキャンして、他のパッケージが提供する可能性のある関数を検出します。以下の表は、パッケージが補完ファイルを配置できる場所と、ファイル名についての概要です。

シェル ディレクトリ ファイル
Bash /usr/share/bash-completion/completions binary_name
Elvish /usr/share/elvish/lib/ binary_name.elv
fish /usr/share/fish/vendor_completions.d binary_name.fish
Zsh /usr/share/zsh/site-functions _binary_name

その他のシェル:

Nushell はデフォルトの補完機能をいくつか提供していますが、まだ補完ファイルを提供するためのシステム全体のディレクトリはありません [1] Nushell の補完関数を生成するパッケージの場合、1つの解決策として、/usr/share/nushell/autoload/binary_name.nu にパッケージ化し、post_install() 関数を使用して、ユーザーに use /path/to/file ステートメントを設定ファイルに追加するように指示する方法があります。

ヒント: 一般的なルールとして、パッケージはシェルに dependoptdepends を持つべきではありません。たまたまそのための補完を提供したからといって、パッケージの依存関係を示唆するものではありません。補完機能はデフォルトのシェルパッケージには存在しませんが、補足の収集パッケージ bash-completionzsh-completions によって 提供 されます。これらのパッケージに補完ファイルが存在する場合、それらを optdepends に追加してください。