问题
我正在尝试让自动完成的文件根据 bash 中的变量着色$LS_COLORS
。但是自动完成会忽略我的$LS_COLORS
变量并从其他地方获取颜色值。
环境
我有一个dircolors
文件和以下声明.bashrc
:
eval `dircolors $HOME/.config/bash/dircolors`
bind 'set colored-stats on'
bind 'set colored-completion-prefix on'
alias ls='ls --group-directories-first --color=auto'
输出ls
的颜色与预期一致(屏幕截图):
但是自动完成功能却不行:
但是,如果我删除我的自定义$LS_COLORS
,那么输出将变得与自动完成相同:
更多细节
bash
、、ls
并通过(端口:“bash”和“coreutils”)dircolors
安装macports
操作系统:macOS 13.2.1
bash:GNU bash,版本 5.2.15
ls:(GNU coreutils)9.1
$TERM:
xterm-256色
$LS_COLORS
:
no=00;38;5;0:fi=00;38;5;0:di=01:ex=00;38;5;1:ln=07;38;5;2:or=07;38;5;1:pi=07;38;5;12:so=07;38;5;10:do=07;38;5;10:bd=07;38;5;3:cd=07;38;5;3:ow=04;01:tw=04;01:*.tar=00;38;5;5:*.tgz=00;38;5;5:*.arj=00;38;5;5:*.taz=00;38;5;5:*.lzh=00;38;5;5:*.lzma=00;38;5;5:*.tlz=00;38;5;5:*.txz=00;38;5;5:*.zip=00;38;5;5:*.z=00;38;5;5:*.Z=00;38;5;5:*.dz=00;38;5;5:*.gz=00;38;5;5:*.lz=00;38;5;5:*.xz=00;38;5;5:*.bz2=00;38;5;5:*.bz=00;38;5;5:*.tbz=00;38;5;5:*.tbz2=00;38;5;5:*.tz=00;38;5;5:*.deb=00;38;5;5:*.rpm=00;38;5;5:*.jar=00;38;5;5:*.rar=00;38;5;5:*.ace=00;38;5;5:*.zoo=00;38;5;5:*.cpio=00;38;5;5:*.7z=00;38;5;5:*.rz=00;38;5;5:*.apk=00;38;5;5:*.gem=00;38;5;5:*.zst=00;38;5;5:*.gpg=04;38;5;0:*.jpg=00;38;5;3:*.JPG=00;38;5;3:*.jpeg=00;38;5;3:*.gif=00;38;5;3:*.bmp=00;38;5;3:*.pbm=00;38;5;3:*.pgm=00;38;5;3:*.ppm=00;38;5;3:*.tga=00;38;5;3:*.xbm=00;38;5;3:*.xpm=00;38;5;3:*.tif=00;38;5;3:*.tiff=00;38;5;3:*.png=00;38;5;3:*.PNG=00;38;5;3:*.svg=00;38;5;3:*.svgz=00;38;5;3:*.mng=00;38;5;3:*.pcx=00;38;5;3:*.dl=00;38;5;3:*.xcf=00;38;5;3:*.xwd=00;38;5;3:*.yuv=00;38;5;3:*.cgm=00;38;5;3:*.emf=00;38;5;3:*.eps=00;38;5;3:*.CR2=00;38;5;3:*.ico=00;38;5;3:*.mov=00;38;5;3:*.MOV=00;38;5;3:*.mpg=00;38;5;3:*.mpeg=00;38;5;3:*.m2v=00;38;5;3:*.mkv=00;38;5;3:*.ogm=00;38;5;3:*.mp4=00;38;5;3:*.m4v=00;38;5;3:*.mp4v=00;38;5;3:*.vob=00;38;5;3:*.qt=00;38;5;3:*.nuv=00;38;5;3:*.wmv=00;38;5;3:*.asf=00;38;5;3:*.rm=00;38;5;3:*.rmvb=00;38;5;3:*.flc=00;38;5;3:*.avi=00;38;5;3:*.fli=00;38;5;3:*.flv=00;38;5;3:*.gl=00;38;5;3:*.m2ts=00;38;5;3:*.divx=00;38;5;3:*.webm=00;38;5;3:*.aac=00;38;5;3:*.au=00;38;5;3:*.flac=00;38;5;3:*.mid=00;38;5;3:*.midi=00;38;5;3:*.mka=00;38;5;3:*.mp3=00;38;5;3:*.mpc=00;38;5;3:*.ogg=00;38;5;3:*.ra=00;38;5;3:*.wav=00;38;5;3:*.m4a=00;38;5;3:*.pdf=00;38;5;4:*.PDF=00;38;5;4:*.html=00;38;5;4:*.HTML=00;38;5;4:*.doc=00;38;5;4:*.docx=00;38;5;4:*.rtf=00;38;5;4:*.ppt=00;38;5;4:*.pptx=00;38;5;4:*.odt=00;38;5;4:*.odp=00;38;5;4:*.epub=00;38;5;4:*.pl=00;38;5;0:*.PL=00;38;5;0:*.py=00;38;5;0:*.pm=00;38;5;0:*.tt=00;38;5;0:*.yml=00;38;5;0:*.sql=00;38;5;0:*.css=00;38;5;0:*.js=00;38;5;0:*.sh=00;38;5;0:*.R=00;38;5;0:*.r=00;38;5;0:*.hs=00;38;5;0:*.rb=00;38;5;0:*.cc=00;38;5;0:*.c=00;38;5;0:*.lua=00;38;5;0:*.vim=00;38;5;0:*.m=00;38;5;0:*.1=00;38;5;0:*.h=00;38;5;0:*.hh=00;38;5;0:*.tex=00;38;5;0:*.bib=00;38;5;0:*.Rd=00;38;5;0:*.rmd=00;38;5;0:*.Rmd=00;38;5;0:*Makefile=00;38;5;0:*Snakefile=00;38;5;0:*do=00;38;5;0:*Doxyfile=00;38;5;0:*config=00;38;5;0:*.conf=00;38;5;0:*.cfg=00;38;5;0:*.yml=00;38;5;0:*README=00;38;5;0:*README.txt=00;38;5;0:*README.md=00;38;5;0:*README.markdown=00;38;5;0:*TODO=00;38;5;0:*todo=00;38;5;0:*NOTE=00;38;5;0:*note=00;38;5;0:*.xlm=00;38;5;6:*.xls=00;38;5;6:*.xlsx=00;38;5;6:*.csv=00;38;5;6:*.tsv=00;38;5;6:*.Rds=00;38;5;6:*.rds=00;38;5;6:*.RDS=00;38;5;6:*.Rda=00;38;5;6:*.rda=00;38;5;6:*.RDA=00;38;5;6:*.Rdata=00;38;5;6:*.RData=00;38;5;6:*.RDATA=00;38;5;6:*.sav=00;38;5;6:*.mat=00;38;5;6:*.json=00;38;5;6:*.bed=00;38;5;6:*.idat=00;38;5;6:*.ods=00;38;5;6:*.log=00;38;5;15:*.bak=00;38;5;15:*.aux=00;38;5;15:*.lof=00;38;5;15:*.lol=00;38;5;15:*.lot=00;38;5;15:*.out=00;38;5;15:*.toc=00;38;5;15:*.bbl=00;38;5;15:*.blg=00;38;5;15:*~=00;38;5;15:*#=00;38;5;15:*.part=00;38;5;15:*.incomplete=00;38;5;15:*.swp=00;38;5;15:*.tmp=00;38;5;15:*.temp=00;38;5;15:*.o=00;38;5;15:*.pyc=00;38;5;15:*.class=00;38;5;15:*.cache=00;38;5;15:*.url=04;38;5;2:
我尝试过的事情
- 使用非常简单的
$LS_COLORS
定义 - 没有效果 - 同时设置
$LSCOLORS
和$LS_COLORS
- 无效果 - 删除
ls
别名并进行设置dircolors
-colored-stats on
无效 - 返回 macOS 中的原生 ls 并使用
$LSCOLORS
- 输出颜色发生变化,但完成颜色保持不变