현재 이것은 내 ZSH 프롬프트의 형식입니다. 다 읽었어https://zsh.sourceforge.io/Doc/Release/Prompt-Expansion.html#Prompt-Expansionzsh 프롬프트에서 잘림에 대해 자세히 알아보세요. 하지만 현재 겪고 있는 중첩 잘림 문제를 해결하는 방법을 모르겠습니다.
export PROMPT="(%10>,,,>[%5>...>william%>>]hello%>>)"
주어진
([wi...]hello)
처음에 내부 표현식을 자르려면 %5>...>william%>>
잘린 표현식을 외부 표현식에 전달하고 자릅니다.
즉, 나는 출력을 원한다
([wi...,,,
답변1
설명서에 따르면
잘릴 문자열 부분이 문자열의 끝까지 실행되거나 구성된 다음 포함 그룹의 끝까지 실행되도록 프롬프트합니다
%(
.또는 동일한 그룹화 수준에서 발생한 다음 잘림까지(즉, a 내의 잘림은%(
별개입니다.) 둘 중 먼저 오는 것입니다. 특히 인수가 0인 잘림(예:%<<
)은 잘릴 문자열 범위의 끝을 표시하는 동시에 거기에서 잘림을 해제합니다.
즉, 동일한 수준에 중첩되지 않습니다. 첫 번째는 %>>
잘림을 중지하고 두 번째는 잘림이 더 이상 활성화되지 않기 때문에 아무 작업도 수행하지 않습니다.
하지만 중첩할 수는 있습니다 %(...)
.
PROMPT='%12>#>12[%(0l,%5>#>abcefghijk,)]345678%>> end$ '
주어진
12[abce#]34# end$
내부 부분은 이며 abcefghijk
5자로 잘리고 로 묶인 []
다음 12[abce#]345678
12자로 잘립니다.