答え1
以下でこれを行うことができます~/.zshrc
。
realPS1="$PS1"
changed=false
changePS1() {
$changed && {
PS1="%n (normal) in %~> "
#Or
PS1="$realPS1"
changed=false
: # <-- It might be not necessary add this `:`. This one
#represents a zero-status code (or successful).
} || {
PS1="%n (hidden)> "
changed=true
}
}
bindkey -s "^H" 'changePS1^M'
Ctrl + H 上記のコードは、関数を実行するためのショートカット(バインドキーを使用)を生成しますchangePS1
。したがって、デフォルトでプロンプトを Ctrl + H 有効にしてもう一度押すと、プロンプトが有効になります。hidden
Ctrl + H normal
$PS1
割り当てる必要がある値についてあなたのニーズに応じて。たとえば、この行には次のPS1="%n (normal) in %~> "
プロンプトが表示されます。
edgar (normal) in ~/Documents/Gitlab/Linux_programming>
%n
ユーザー名と%~
現在の作業ディレクトリの相対パスはどこにありますか?
ただし、実際の$PS1
(行realPS1="$PS1"
)をバックアップしてPS1="$realPS1"
代わりに使用できます。PS1="%n (normal) in %~> "
そして、PS1="%n (hidden)> "
次のプロンプトが表示されます。
edgar (hidden)>
したがって、PS1
カスタムヒントを使用して変数を割り当てる必要がありますが、%~
パスの印刷を避ける必要はありません。