개인화된 색상 매뉴얼 페이지 zsh 플러그인 색상

개인화된 색상 매뉴얼 페이지 zsh 플러그인 색상

방금 설치했어요컬러 매뉴얼 페이지zsh 플러그인.

잘 작동하지만 하단 메시지에 보기 흉한 색상이 출력됩니다.

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

모든 것을 재정의하지 않고 플러그인의 색상을 개인화하는 올바른 방법은 무엇입니까? 색상이 직접 설정되는 과정인 것 같습니다.플러그인 활성화.

아니면 내 시스템의 버그이므로 다른 방법으로 고칠 수 있을까요? 실제로 읽을 수 없는 기본 색상 출력은 이상하게 보입니다.

저는 Ubuntu 18.10과 gnome-terminal에서 실행 중입니다.

답변1

매뉴얼 페이지( )의 형식에서는 groff명시적인 색상 사용을 허용하지 않지만, 보는 사람이 색상을 표시하기 위해 재해석할 수 있는 굵게 또는 밑줄과 같은 일부 텍스트 장식을 사용합니다. 이것이 바로 링크 플러그인이 수행하는 작업이므로 이 플러그인을 제거하고 대신 .zshrc변수를 통해 직접 색상을 설정하는 것이 좋습니다( 이 플러그인과 마찬가지로 pager 를 LESS_TERMCAP사용한다고 가정합니다 ).lessman

설명이 포함된 변수 목록은 다음과 같습니다.

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_termcaptermcap 기능을 호출기 이스케이프 시퀀스에 매핑하는 전역 연관 배열을 선언합니다 less. 플러그인이 로드되면 사용자는 이 매핑을 추가로 사용자 정의할 수 있습니다. 자세한 내용은 출처를 확인하세요.

예를 들어, 이스케이프 시퀀스 less_termcap[md]에 매핑하여 굵은 글씨로 인쇄하는 방법을 알려줍니다. 현재 굵은 빨간색으로 표시되어 있지만 변경하려면 OMZ를 가져온 후 zshrc 파일에서 다시 정의하면 됩니다.LESS_TERMCAP_mdlessless_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


노트

하지만 시도하고 실수하는 데 시간을 낭비하고 싶지 않다면 한 줄이면 충분합니다.

관련 정보