終了者ウィンドウのサイズを変更するときは、zshを再ロードしてください。

終了者ウィンドウのサイズを変更するときは、zshを再ロードしてください。

抗原と一緒にzshでターミネーターを使用しています。私が使用しているテーマ(af-magicの修正版)は、現在のウィンドウ幅を検索し、入力を区切る=記号で構成されたバーを印刷します。

# af-magic.zsh-theme
# Repo: https://github.com/andyfleming/oh-my-zsh
# Direct Link: https://github.com/andyfleming/oh-my-zsh/blob/master/themes/af-magic.zsh-theme

if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"

# primary prompt

BAR=$(printf '=%.0s' {1..$(tput cols)})

PROMPT='$FG[237]$BAR%{$reset_color%}
$FG[032]%~\
$(git_prompt_info) \
$FG[105]%(!.#.»)%{$reset_color%} '
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
RPS1='${return_code}'


# color vars
eval my_gray='$FG[237]'
eval my_orange='$FG[214]'

# right prompt
if type "virtualenv_prompt_info" > /dev/null
then
    RPROMPT='$(virtualenv_prompt_info)$my_gray%n@%m%{$reset_color%}%'
else
    RPROMPT='$my_gray%n@%m%{$reset_color%}%'
fi

# git settings
ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075](branch:"
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"
# af-magic.zsh-theme
# Repo: https://github.com/andyfleming/oh-my-zsh
# Direct Link: https://github.com/andyfleming/oh-my-zsh/blob/master/themes/af-magic.zsh-theme

if [ $UID -eq 0 ]; then NCOLOR="red"; else NCOLOR="green"; fi
local return_code="%(?..%{$fg[red]%}%? ↵%{$reset_color%})"

# primary prompt

BAR=$(printf '=%.0s' {1..$(tput cols)})

PROMPT='$FG[237]$BAR%{$reset_color%}
$FG[032]%~\
$(git_prompt_info) \
$FG[105]%(!.#.»)%{$reset_color%} '
PROMPT2='%{$fg[red]%}\ %{$reset_color%}'
RPS1='${return_code}'


# color vars
eval my_gray='$FG[237]'
eval my_orange='$FG[214]'

# right prompt
if type "virtualenv_prompt_info" > /dev/null
then
    RPROMPT='$(virtualenv_prompt_info)$my_gray%n@%m%{$reset_color%}%'
else
    RPROMPT='$my_gray%n@%m%{$reset_color%}%'
fi

# git settings
ZSH_THEME_GIT_PROMPT_PREFIX="$FG[075](branch:"
ZSH_THEME_GIT_PROMPT_CLEAN=""
ZSH_THEME_GIT_PROMPT_DIRTY="$my_orange*%{$reset_color%}"
ZSH_THEME_GIT_PROMPT_SUFFIX="$FG[075])%{$reset_color%}"

これはうまく機能しますが、ウィンドウのサイズを変更するとBAR更新されないため、短すぎるか長すぎるため、複数行が必要です。例:

|==================================================================|
|~ »                                                               |

~になる

|==================================================| 
|================                                  | <- window border
|~ »                                               |

ウィンドウのサイズを変更するときにzshまたはターミネータにテーマを再ロードさせる方法はありますか?

ベストアンサー1

端末のサイズを変更するとき、シェルはシグナルウインチ信号。だからアップデートがBAR落とされた。そのエントリはzshで定義できます。トラップ機能:

TRAPWINCH () {
  BAR=$(printf '=%.0s' {1..$COLUMNS})
}

tputzshは端末の列数を追跡するため、呼び出す必要はありません。COLUMNS変える

必ずオンにしてくださいprompt_substoption(setopt prompt_subst)を使用$PROMPTして表示されるたびに再計算されます。それともPROMPTアップデートしてみてください。TRAPWINCH

printfあなたはそれを使用することができますパラメータ拡張パディング文字列を取得します。パラメータ拡張は通常変数値に基づいて機能しますが、文字列(この場合は空の文字列)で作業できます。これによりトラップはまったく必要ありません。${:-STRING}

setopt prompt_subst
PROMPT='$FG[237]${(l:$COLUMNS::=:):-}%{$reset_color%}

おすすめ記事