방금 설치했어요컬러 매뉴얼 페이지zsh 플러그인.
잘 작동하지만 하단 메시지에 보기 흉한 색상이 출력됩니다.
모든 것을 재정의하지 않고 플러그인의 색상을 개인화하는 올바른 방법은 무엇입니까? 색상이 직접 설정되는 과정인 것 같습니다.플러그인 활성화.
아니면 내 시스템의 버그이므로 다른 방법으로 고칠 수 있을까요? 실제로 읽을 수 없는 기본 색상 출력은 이상하게 보입니다.
저는 Ubuntu 18.10과 gnome-terminal에서 실행 중입니다.
답변1
매뉴얼 페이지( )의 형식에서는 groff
명시적인 색상 사용을 허용하지 않지만, 보는 사람이 색상을 표시하기 위해 재해석할 수 있는 굵게 또는 밑줄과 같은 일부 텍스트 장식을 사용합니다. 이것이 바로 링크 플러그인이 수행하는 작업이므로 이 플러그인을 제거하고 대신 .zshrc
변수를 통해 직접 색상을 설정하는 것이 좋습니다( 이 플러그인과 마찬가지로 pager 를 LESS_TERMCAP
사용한다고 가정합니다 ).less
man
설명이 포함된 변수 목록은 다음과 같습니다.
export LESS_TERMCAP_mb=$'\e[6m' # begin blinking
export LESS_TERMCAP_md=$'\e[34m' # begin bold
export LESS_TERMCAP_us=$'\e[4;32m' # begin underline
export LESS_TERMCAP_so=$'\e[1;33;41m' # begin standout-mode - info box
export LESS_TERMCAP_me=$'\e[m' # end mode
export LESS_TERMCAP_ue=$'\e[m' # end underline
export LESS_TERMCAP_se=$'\e[m' # end standout-mode
색상 코드 목록은 다음 스크립트를 사용하여 찾을 수 있습니다.
#!/bin/bash
echo "PALETTE OF 8 COLORS (bold, high intensity, normal, faint)"
for i in {30..37}; do printf "\e[1;${i}m1;%-2s \e[m" "$i"; done; echo
for i in {90..97}; do printf "\e[${i}m%+4s \e[m" "$i"; done; echo
for i in {30..37}; do printf "\e[${i}m%+4s \e[m" "$i"; done; echo
for i in {30..37}; do printf "\e[2;${i}m2;%-2s \e[m" "$i"; done;
echo -e "\n\n\nPALETTE OF 256 COLORS (only normal)"
j=8
for i in {0..255}; do
[[ $i = 16 ]] && j=6
[[ $i = 232 ]] && j=8
printf "\e[38;5;${i}m38;5;%-4s\e[m" "${i}"
(( i>15 && i<232 )) && printf "\e[52C\e[1;38;5;${i}m1;38;5;%-4s\e[52C\e[m\e[2;38;5;${i}m2;38;5;%-4s\e[m\e[126D" "${i}" "${i}"
[[ $(( $(( $i - 15 )) % $j )) = 0 ]] && echo
[[ $(( $(( $i - 15 )) % $(( $j * 6 )) )) = 0 ]] && echo
done
exit 0
답변2
주어진 솔루션은 매우 우아합니다. Oh My ZSH 공식 위키를 바랍니다.
ohmyzsh/플러그인/colormanpages/배열에는 색상 목록이나 항목이 없습니다 less_termcap
. 다음은 작은 예를 들기 위한 ##Customization의 내용입니다.
플러그인은
less_termcap
termcap 기능을 호출기 이스케이프 시퀀스에 매핑하는 전역 연관 배열을 선언합니다less
. 플러그인이 로드되면 사용자는 이 매핑을 추가로 사용자 정의할 수 있습니다. 자세한 내용은 출처를 확인하세요.예를 들어, 이스케이프 시퀀스
less_termcap[md]
에 매핑하여 굵은 글씨로 인쇄하는 방법을 알려줍니다. 현재 굵은 빨간색으로 표시되어 있지만 변경하려면 OMZ를 가져온 후 zshrc 파일에서 다시 정의하면 됩니다.LESS_TERMCAP_md
less
less_termcap[md]
less_termcap[md]="${fg_bold[blue]}" # this tells less to print bold text in bold blue
이 모든 것을 가지고 더 많은 것을 시도해 볼 수 있을 것 같아요용어 모자
# mb start blink
# md start bold
# me turn off bold, blink and underline
# so start standout (reverse video)
# se stop standout
# us start underline
# ue stop underline
노트
하지만 시도하고 실수하는 데 시간을 낭비하고 싶지 않다면 한 줄이면 충분합니다.