この特定の.bash_profileを.zprofileに変換します。

この特定の.bash_profileを.zprofileに変換します。

この.bash_profileがあります。

alias ip='ipconfig getifaddr en0'

PS1="\[\e[0;31m\]\$ \[\e[0;32m\]\w\[\e[0m\] : "
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

MacOSがCatalinaにアップデートされた後(https://support.apple.com/en-us/HT208050)zshがデフォルト端末になります。

これをzsh .zprofileに変換するにはどうすればよいですか?

ベストアンサー1

別名、テスト、ドットコマンドを使用した他のファイルのインポート、および環境変数の作成は、-s最新の類似シェルexportで同じです。これらの操作はシェルとsh同じように機能します。zshbash

シェルは、zshすべての変数拡張を二重引用符で囲む必要はありません。これは、二重引用符の一部を削除できることを意味します。

bash_completionそして、スクリプトがnvm.sh次に見つかったものと同じ場合Githubnvmリポジトリbashはシェルとシェルの両方をサポートするように書かれていますzsh。つまり、特別な作業を行う必要はありません。

このような簡単な部分から始めると、1つの重要な問題が残りますが、まさにプロンプ​​ト文字列です。

プロンプト文字列は明示的なカラーエスケープコードを使用して赤色で表示され、$その後にスペースが表示され、現在の作業ディレクトリは緑色で表示されます。その後、スペースに囲まれたコロンがあります。現在の作業ディレクトリがプロンプトに挿入され\w、これはPROMPT_DIRTRIMMedium変数の影響も受けますbashPROMPT_DIRTRIM設定されていないとしましょう。

プロンプト文字列は次の場所にありますbash

PS1='\[\e[0;31m\]\$ \[\e[0;32m\]\w\[\e[0m\] : '

プロンプト文字列zsh(色なし):

PS1='%# %~ : '

このプロンプトは#ルートシェルには表示されますが、%ルート以外のシェルには表示されません。ルート以外のシェルで代わりに使用するには、$代わりに使用します。プロンプトは、現在の作業ディレクトリを含めるために使用されます。数字を追加すると、 の設定と同じ効果が得られます。これには、現在の作業ディレクトリのディレクトリパスのうち、最大2つのパス名コンポーネントが含まれます。%%(!.#.$)%#%~%PROMPT_DIRTRIMbash%2~

それに色を追加します:

PS1='%F{red}%#%f %F{green}%~%f : '

プロンプトとプロンプトの設定方法の詳細については、マニュアルを参照してくださいzshmisc(「プロンプトシーケンスの拡張」セクションを検索)。

これらすべてをまとめると、次のように終わります。

alias ip='ipconfig getifaddr en0'

PS1='%F{red}%#%f %F{green}%~%f : '

export NVM_DIR=$HOME/.nvm
[ -s $NVM_DIR/nvm.sh ] && . $NVM_DIR/nvm.sh
[ -s $NVM_DIR/bash_completion ] && . $NVM_DIR/bash_completion

おすすめ記事