zshがプロンプトに表示されるように現在のディレクトリを正確に印刷するにはどうすればよいですか?

zshがプロンプトに表示されるように現在のディレクトリを正確に印刷するにはどうすればよいですか?

私はzshシェルを使用し、パラメータは%1~プロンプトの中にあります。ディスプレイは/home/username表示されなくなり、~/home/username/Desktopのみ変更されますDesktop

プロンプト表示パスの長さは~1文字にすぎませんが、/home/username14文字が必要なので、プログラムでインポートする必要があります。仕事を複雑にすることなくこれを行う方法はありますか?

答え1

プロンプトの外部でプロンプト拡張を実行するには、次のものがあります。

print -rP %1~

または:

print -rPv expanded %1~

拡張変数に保存されます。

または、%パラメーター拡張フラグを使用してください。

var=%1~
print -r -- ${(%)var}

または変数に保存します。

expanded=${(%)var}

文字の長さを取得するには:

length=${#${(%)var}}

ただし、色/太字/イタリック体...ディレクティブがある場合、長さには色エスケープシーケンスの文字も含まれ、拡張表示幅のヒントは得られません。

関連情報