「シェルパッケージガイドライン」の版間の差分
ナビゲーションに移動
検索に移動
(→Shell completions: 翻訳) |
(→シェルの補完機能: 同期) |
||
| (同じ利用者による、間の1版が非表示) | |||
| 2行目: | 2行目: | ||
[[en:Shell package guidelines]] |
[[en:Shell package guidelines]] |
||
{{Related articles start}} |
{{Related articles start}} |
||
| − | {{Related| |
+ | {{Related|コマンドラインシェル}} |
{{Related articles end}} |
{{Related articles end}} |
||
{{Package Guidelines}} |
{{Package Guidelines}} |
||
| 27行目: | 27行目: | ||
== シェルの補完機能 == |
== シェルの補完機能 == |
||
| − | ほとんどのシェルは、いくつかの一般的なコマンドの補完 |
+ | ほとんどのシェルは、いくつかの一般的なコマンドに対してビルトインの補完機能を提供しており、さらに少なくとも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行目: | ||
|} |
|} |
||
| − | その他のシェル |
+ | その他のシェル: |
| − | + | [[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時点における最新版
関連記事
パッケージ作成ガイドライン
32ビット – CLR – クロス – Eclipse – Electron – Free Pascal – GNOME – Go – Haskell – Java – KDE – カーネル – Lisp – MinGW – Node.js – ノンフリー – OCaml – Perl – PHP – Python – R – Ruby – Rust – VCS – ウェブ – Wine
インストール方法
ユーザが シェルの変更 を行うには、シェルを /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 ステートメントを設定ファイルに追加するように指示する方法があります。