
この.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
同じように機能します。zsh
bash
シェルは、zsh
すべての変数拡張を二重引用符で囲む必要はありません。これは、二重引用符の一部を削除できることを意味します。
bash_completion
そして、スクリプトがnvm.sh
次に見つかったものと同じ場合Githubnvm
リポジトリbash
はシェルとシェルの両方をサポートするように書かれていますzsh
。つまり、特別な作業を行う必要はありません。
このような簡単な部分から始めると、1つの重要な問題が残りますが、まさにプロンプト文字列です。
プロンプト文字列は明示的なカラーエスケープコードを使用して赤色で表示され、$
その後にスペースが表示され、現在の作業ディレクトリは緑色で表示されます。その後、スペースに囲まれたコロンがあります。現在の作業ディレクトリがプロンプトに挿入され\w
、これはPROMPT_DIRTRIM
Medium変数の影響も受けますbash
。PROMPT_DIRTRIM
設定されていないとしましょう。
プロンプト文字列は次の場所にありますbash
。
PS1='\[\e[0;31m\]\$ \[\e[0;32m\]\w\[\e[0m\] : '
プロンプト文字列zsh
(色なし):
PS1='%# %~ : '
このプロンプトは#
ルートシェルには表示されますが、%
ルート以外のシェルには表示されません。ルート以外のシェルで代わりに使用するには、$
代わりに使用します。プロンプトは、現在の作業ディレクトリを含めるために使用されます。数字を追加すると、 の設定と同じ効果が得られます。これには、現在の作業ディレクトリのディレクトリパスのうち、最大2つのパス名コンポーネントが含まれます。%
%(!.#.$)
%#
%~
%
PROMPT_DIRTRIM
bash
%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