web-dev-qa-db-ja.com

zshでホスト名を設定する方法

$ HOSTNAMEを設定するbashでは、次のようなものを使用するだけで、プロンプト行の全長を計算できました:PS1_length=$((${#USER}+${#HOSTNAME}+${#PWDNAME}+12+${#PS1_GIT}))

それは役に立ちました。このような塗りつぶし線を作成するとき: enter image description here

しかし、zsh$HOSTNAMEを正しく設定できず、その中で同様の動作をエミュレートする方法を考えることができません。

5
whoever

設定するだけ

HOSTNAME=$(hostname)

あなたの~/.zshrc

または、Calebが指摘したように、可変ホストセットがあるため、Promptをポータブルに保つには、次のようにすることもできます。

HOSTNAME=$Host
4
Anthon

zshプロンプト展開を使用すると、計算を行わなくてもそのプロンプトを実行できます。

_PS1='%$COLUMNS>╡>%F{cyan}╔╡%F{red}[%n]%F{cyan}:%F{yellow}[%m]%F{cyan}➾%F{green}[%~]%F{default}$PS1_GIT%F{cyan}${(l:COLUMNS::═:):-}%<<
╚═╡%F{default}'
_

説明:

  • _%$COLUMNS>╡>_:次の_$COLUMNS_までの部分を_%<<_(zshによって端末の幅に動的に設定される変数)まで右に切り詰めます。
  • _%F{color}_:前景色を設定します
  • _%n_、_%m_、_%~_:ユーザー名、マシン名(最初のドットまでのホスト名)、_~_- named-dirsの現在のディレクトリ。
  • ${(l:COLUMNS::═:):-}:空の文字列(_${:-}_)を_$COLUMNS_の長さに__文字で左パディングします。

_%m_は_${Host%%.*}_に似ています。完全なホスト名(_$Host_)が必要な場合は、代わりに_%M_を使用してください。

8