나는 얻으려고 노력하고있다햇볕에 말린내 터미널에서 사용되는 색상 테마입니다. 설명을 읽었습니다여기하지만 다음과 같은 dircolors 오류가 발생합니다.
dircolors: `/home/avazquez/.dircolors_zsh':90: unrecognized keyword RESET
dircolors: `/home/avazquez/.dircolors_zsh':94: unrecognized keyword MULTIHARDLINK
dircolors: `/home/avazquez/.dircolors_zsh':103: unrecognized keyword CAPABILITY
실행 시간:
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
fi
내 .zshrc
zsh(최신 버전)에서( Ubuntu ssh -X
에서 원격으로 액세스합니다 gnome-terminal
).
문제의 파일 경로 .dircolors
는여기혼란스러운 줄은 특별한 파일 정의인 것 같습니다.
## Special files
NORMAL 00;38;5;244 # no color code at all
#FILE 00 # regular file: use no color at all
RESET 0 # reset to "normal" color
DIR 00;38;5;33 # directory 01;34
LINK 01;38;5;37 # symbolic link. (If you set this to 'target' instead of a
# numerical value, the color is as for the file pointed to.)
MULTIHARDLINK 00 # regular file with more than one link
FIFO 48;5;230;38;5;136;01 # pipe
SOCK 48;5;230;38;5;136;01 # socket
DOOR 48;5;230;38;5;136;01 # door
BLK 48;5;230;38;5;244;01 # block device driver
CHR 48;5;230;38;5;244;01 # character device driver
ORPHAN 48;5;235;38;5;160 # symlink to nonexistent file, or non-stat'able file
SETUID 48;5;160;38;5;230 # file that is setuid (u+s)
SETGID 48;5;136;38;5;230 # file that is setgid (g+s)
CAPABILITY 30;41 # file with capability
STICKY_OTHER_WRITABLE 48;5;64;38;5;230 # dir that is sticky and other-writable (+t,o+w)
OTHER_WRITABLE 48;5;235;38;5;33 # dir that is other-writable (o+w) and not sticky
STICKY 48;5;33;38;5;230 # dir with the sticky bit set (+t) and not other-writable
# This is for files with execute permission:
EXEC 01;38;5;64
답변1
그것 은 이것 과 거의 관련 이 없습니다 zsh
. zsh
색상 완성은 GNU처럼 지원됩니다 ls
(예:파란색디렉토리의 경우,녹색실행 파일의 경우...), GNU와 동일한 구성 지시문을 지원합니다 ls
.
GNU ls
색상 구성은 LS_COLORS
환경 변수를 통해 수행됩니다. 이 변수가 포함되면 ln=01;36
심볼릭 링크가 다음 형식으로 렌더링된다는 의미입니다.두꺼운 청록색( 36
전경의 청록색은 ANSI 색상 코드이며 01
굵은 글씨입니다.)
에서도 zsh
같은 일을 할 수 있습니다:
zstyle ':completion:*' list-colors 'ln=01;36'
실제로는 일반적으로 다음을 zsh
사용하여 색상 완성을 구성합니다.
zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
따라서 zsh
색상 완성은 GNU ls와 동일한 방식으로 작동합니다.
변수의 내용을 더 쉽게 작성할 수 있도록 LS_COLORS
GNU에는 ls
이 명령이 제공됩니다 dircolors
. 이 명령은 더 자세한 내용이 포함된 구성 파일을 입력으로 사용하고(구성 파일에는 환경 변수와 같은 공간 제한이 없기 때문에) LS_COLORS
터미널에 적합한 변수의 해당 내용을 생성합니다.
위에는 다음이 있습니다.
LINK 01;38;5;37
01
38;5;37
여전히 굵게 표시되어 있지만 88색 또는 256색을 지원하는 단말기의 확장 색상 모드에 대한 사양 입니다 .xterm
이것은 전경색 37로, rgb:00/af/af
ANSI 색상 6의 기본 색상( cyan3
적어도 내 경우에는 xterm
여기 rgb:00/cd/cd
)보다 약간 더 어두운 청록색( ) 색상입니다.
~$ tput setaf 37 | sed l
\033[38;5;37m$
그 이후 dircolors
에는 ln=38;5;37
.
MULTIHARDLINK 00
여러 개의 하드 링크가 있는 파일이 기본 색상으로 렌더링된다는 규정 도 있습니다 . 이는 로 변환 mh=00
됩니다 $LS_COLORS
.
ls
그러나 이는 비교적 새로운 버전의 / 에서 도입되었습니다 dircolors
. 원래는 HARDLINK
/ 였지만 2009년 coreutils 7.5에서는 / 가 더 정확한 표현 선택이었기 때문에 이름이 / hl
로 변경되었습니다 .MULTIHARDLINK
mh
이전 버전을 사용하고 있는 것 같습니다 dircolors
. 두 가지 모두 zsh
지원 되지 않으며(비록 불평하지 않고 무시하지만) 기본 색상으로 설정되어 있으므로 해당 줄을 제거하는 것이 좋습니다.hl
mh
RESET
/ rs
는 coreutils 6.11에 추가되었지만 둘 다 지원되지 않습니다 zsh
.
CAPABILITY
/는 ca
coreutils 7.0에 추가되었지만 둘 다 지원되지 않습니다 zsh
.
지원되지 않는 항목이 더 있을 수 있지만 zsh
( info zsh 'The zsh/complist Module'
자세한 내용 참조) zsh
지원하지 않는 항목은 무시하세요.
당신이 받고 있는 오류는 에서 발생합니다 . 이는 파일을 작성한 사람이 당신보다 최신 버전의 coreutils( 및 를 포함한 GNU 유틸리티 제품군)을 가지고 있다는 dircolors
것을 의미합니다 . 파일에서 지원되지 않는 줄을 삭제하면 됩니다.dircolors
ls
dircolors