프롬프트 확장 ZSH 중첩 잘림

프롬프트 확장 ZSH 중첩 잘림

현재 이것은 내 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$

내부 부분은 이며 abcefghijk5자로 잘리고 로 묶인 []다음 12[abce#]34567812자로 잘립니다.

관련 정보