zsh에서 명령을 굵게 표시하는 방법은 무엇입니까?

zsh에서 명령을 굵게 표시하는 방법은 무엇입니까?

나는 내가 입력하는 모든 명령이 굵게 표시되고 명령의 출력이 보통 크기로 표시되도록 bash 쉘을 설정했습니다.

여기에 이미지 설명을 입력하세요.

\e[01m변수 끝에 추가하여 PS1굵게 설정하고 다음을 사용하여 끕니다 trap DEBUG.

trap 'printf "\e[0m" "$_"' DEBUG

이렇게 하면 \e[0m모든 명령이 실행되기 전에 인쇄되며 출력에서 ​​정상적인 글꼴 두께를 얻습니다.

동일한 효과를 어떻게 얻을 수 있습니까 zsh?

답변1

구식 방식을 사용하는 것입니다POSTEDIT

 POSTEDIT=$'\e[0m'

(그런데 이것은 bash가 아닙니다. 에뮬레이트하기 위해 DEBUG 트랩을 사용하지 마십시오 preexec:zsh는 그것이 어디에서 왔는지입니다) 그러나 zsh 4.3.11부터 명령줄을 사용할 수 있습니다구문 강조 도구. 프롬프트가 프롬프트 및 설정에만 관심을 갖도록 합니다.

zle_highlight=(default:bold)

답변2

당신이 원하는 것은실행 전 Hook 기능:

preexec() { printf "\e[0m"; }

그런 다음 각 명령이 실행되기 전에 preexec글꼴을 정상으로 재설정하기 위해 실행됩니다.

따라서 질문에 표시된 것과 동일한 프롬프트를 얻으려면 다음 줄을 다음 줄에 추가하세요 ~/.zshrc.

autoload -U colors && colors
PS1="%{$fg_bold[yellow]%}%n@%m %{$fg[blue]%}%~ \$ %{$reset_color%}%{$fg_bold[white]%}"
preexec() { printf "\e[0m"; }

관련 정보