Linux
提示擴展 ZSH 嵌套截斷
目前,這是我的 ZSH Prompt 的格式。我一直在閱讀https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html#Prompt-Expansion以進一步了解 zsh 提示中的截斷,但我不知道如何解決這個嵌套截斷問題碰到。
export PROMPT="(%10>,,,>[%5>...>william%>>]hello%>>)"
給
([wi...]hello)
當我希望它最初截斷內部表達式時
%5>...>william%>>
,然後將截斷的表達式傳遞給外部表達式並截斷它。即我想要輸出
([wi...,,,
手冊說
要截斷的提示字元串部分執行到字元串的末尾,或者到
%(
構造的下一個封閉組的末尾,或者到在同一分組級別遇到的下一個截斷(即 a 內的截斷%(
是分開的),以先到者為準。特別是,帶有參數零的截斷(例如,%<<
)標記要截斷的字元串範圍的結束,同時從那里關閉截斷。也就是說,它們不會嵌套在同一級別:第一個
%>>
停止截斷,第二個什麼也不做,因為截斷在那裡不再活動。但是您可以將它們嵌套在
%(...)
.PROMPT='%12>#>12[%(0l,%5>#>abcefghijk,)]345678%>> end$ '
給
12[abce#]34# end$
內部是
abcefghijk
,它被截斷為五個字元,並包裹在 中[]
,然後12[abce#]345678
被截斷為 12 個字元。