나는 시도했다:
vared -p '"$(print \"\e[1;31test\")" something' -c tmp
출력 에코"$(print \"\e[1;31test\")" something
test
하지만 여기서는 단어의 색상을 바꾸고 싶습니다 . 달성하는 방법?
답변1
빠르게 확장되는 주장을 이해 -p
하면 다음과 같습니다.
var=; vared -p '%B%F{red}something%f: ' var
%B
:( 굵은 글씨는bold
그만%b
)%F{red}
: 빨간색 전경(%K
배경용).%f
:기본 전경색을 복원합니다.
행위:
vared -p $'\e[1;31msomething: ' var
이는 프롬프트의 너비가 실제로 11열일 때( 보이지 않기 때문에) 너비가 18열이라고 생각하게 하여 커서 위치를 vared -p "$(printf '\e[1;31msomething: ')"
속이기 때문에 나쁜 생각과 동일합니다(질문의 버전에서 수정됨) . .zle
\e[1;31m
답변2
-p
이는 zsh에서 모듈을 로드한 후 큰따옴표를 사용하여 달성할 수 있습니다 .colors