「どのプロンプト」が提供する機能はどこで定義されていますか?

「どのプロンプト」が提供する機能はどこで定義されていますか?

私は "stuff"を使うときに呼び出されるファイルを見つけるために "which stuff"を使うのに慣れています。 「あるプロンプト」への回答を見て驚きました。

prompt () {
        local prompt_opts
        set_prompt "$@"
        (( $#prompt_opts )) && setopt noprompt{bang,cr,percent,subst} "prompt${^prompt_opts[@]}"
        true
}

私のArchlinuxシステムで。これはどこから来て、現在構築されているchroot環境でプロンプトコマンドを使用できるようにするにはどうすればよいですか? (私は他のコマンドをコピーしました...ここでは動作しません=))

編集する:私はzshをシェルとして使用しています。たぶんこれは何かが変わるかもしれません。

ベストアンサー1

実行時に取得するコマンドはwhichという関数ですprompt。出力は定義です。

次のコマンドを使用して表示することもできます。

$ declare -f prompt

プロンプト()関数はどこにありますか?

これは少しトリッキーです。grep" "文字列を見つけるなどのツールを使用する必要がありますprompt ()。一般的に見なければならない場所は次のとおりです。

強く打つ

(メモ:whichBashで使用typeする代わりに)

$ grep -R "prompt ()" .bashrc .bash_profile /etc/bashrc /etc/profile*

扱いにくい

$ grep -R "prompt ()" <files>

zshマニュアルページで使用されるファイルは次のとおりです。

   $ZDOTDIR/.zshenv
   $ZDOTDIR/.zprofile
   $ZDOTDIR/.zshrc
   $ZDOTDIR/.zlogin
   $ZDOTDIR/.zlogout
   ${TMPPREFIX}*   (default is /tmp/zsh*)
   /etc/zshenv
   /etc/zprofile
   /etc/zshrc
   /etc/zlogin
   /etc/zlogout    (installation-specific - /etc is the default)

次のいずれかの場所に配置する必要があります。これらの場所のいずれにも表示されない場合は、検索範囲を広げる必要があります。文字列 " prompt"だけを探すことをお勧めします。

おすすめ記事