電話をかけると、cd /Users/mu3/apps
プロンプトは次のように単純化されます。
mu3 [~/apps]:
次のカスタムパスで同じことを実行できますかcd /Users/mu3/Development/Web/test
?
mu3 [DEV/test]:
iTerm + oh-my-zshを使用しています。
UPD:私は十分に具体的ではなく、新しい情報も見つけました。
使ってるからagnoster
テーマはzsh
プロンプト自体を処理するシェルです。
だから結局私は変わったこの行:
prompt_segment blue black '%~'
これに関して:
PWDshort="${PWD/#$HOME/~}"
PWDshort="${PWDshort/\~\/_cld\/Dropbox\/Dev\/Web/DEV}"
prompt_segment blue black $PWDshort
今問題は、すべての更新が明らかにこれを破るということです。
同じ結果を得るより良い方法はありますか?
答え1
プロンプトのディレクトリ略語を定義する標準的な方法は、次のようにすることです。名前ディレクトリ。拡張時に名前付きディレクトリを使用する%~
~
ホームディレクトリを短縮し、~bob
Bobのホームディレクトリを短縮するとまとめられたプロンプトエスケープシーケンス。
mu3 [~]: cd /Users/mu3/Development/Web/test
mu3 [~/Development/Web/test]: hash -d test=$PWD
mu3 [~test]: cd config
mu3 [~test/config]:
一般的なアプローチは、短縮されたプロンプトで使用されることに加えて、名前付きディレクトリを使用してパスを短縮することもできます。たとえば、そのディレクトリに切り替えるには、をhash -d test=~/Development/Web/test
実行できます。.zshrc
cd ~test
この方法では、省略形は常にで始まります~
。
答え2
のようにプロンプトの機能を使用できますbash
。例は次のとおりです。
setopt PROMPT_SUBST
print_dir(){
case $PWD in
(*/Development*)
echo DEV/${PWD:t}
;;
(*)
echo $PWD
;;
esac
}
export PROMPT=$'[$(print_dir)]: '
これzshall
マニュアルページのドキュメントPROMPT_SUBST
:
このオプションを設定すると、プロンプト
PROMPT_SUBST
文字列が最初に実行されます。パラメータ拡張、コマンドの置き換えそして算術拡張。バラよりzshexpn(1)。