macOS CatalinaでPS1を設定すると、ウィンドウのサイズ変更時に端末プロンプトが重なります。

macOS CatalinaでPS1を設定すると、ウィンドウのサイズ変更時に端末プロンプトが重なります。

.bash_profileにPS1を設定しましたが、色が動作している間にターミナルウィンドウのサイズを変更すると、単語の折り返しが正しくなくなり、行の動作が奇妙になります。

これは私の.bash_profileです。

[[ -s ~/.bashrc ]] && source ~/.bashrc

# Setting PATH for Python 2.7
# The orginal version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/TeX/Distributions/Programs/texbin:${PATH}"

shopt -s checkwinsize
export PROMPT_DIRTRIM=3
export PS1='\[\e[0;37m\]\d \D{} \[\e[36m\]\u\[\e[m\]@\[\e[32m\]\h:\[\e[0;31m\]\w\[\e[m\] \$ '
export CLICOLOR=1
# export LSCOLORS=AxcxcxdxBxegedabagahad    # light theme
export LSCOLORS=GxFxCxDxBxegedabagaced  # dark theme
alias ls='ls -GFh'
alias mv='mv -iv'
alias cp='cp -iRv'

PS1の設定方法に問題がありますか?

ベストアンサー1

一般端末を一時的に復元するには、次のものを使用できます。

kill -28 $$

プロンプトで印刷されないすべてのエスケープシーケンスの周りに[と]を配置する必要があります。したがって:

blue=$(tput setaf 4)
purple=$(tput setaf 5)
reset=$(tput sgr0)
export PS1="\[$blue\]\h:\[$purple\]\w\[$reset\]\\$ "

したがって、生のANSIコードの使用を中止してください。読むことができないので使用することをお勧めしますtput

確認する https://mywiki.wooledge.org/BashFAQ/053

おすすめ記事