加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

zsh list-colors语法如何工作?

发布时间:2020-12-14 01:51:16 所属栏目:Linux 来源:网络整理
导读:我正在尝试为完成函数设置列表颜色,但我无法围绕样式语法. zstyle ':completion:*:tasks:*' list-colors "=(#b) #([^ ]#)*=$color[white]=$color[yellow]=$color[red]" 我所知道的是’#’和’##’是’.’的正则表达式.和”.每次我尝试修改语法时,匹配似乎都
我正在尝试为完成函数设置列表颜色,但我无法围绕样式语法.

zstyle ':completion:*:tasks:*' list-colors "=(#b) #([^ ]#)*=$color[white]=$color[yellow]=$color[red]"

我所知道的是’#’和’##’是’.’的正则表达式.和”.每次我尝试修改语法时,匹配似乎都会破坏.有人可以发布一些简单的例子或资源(不幸的是,zsh文档的例子很少)?例如,我如何匹配字符串’ – ‘?

解决方法

这里有几个例子.

开始时很简单,让所有参数标记为绿色:

zstyle ':completion:*:parameters'  list-colors '=*=32'

正如您所看到的,语法是’= pattern = format’.
由于*匹配所有内容,32是ANSI绿色代码,因此所有参数都将为绿色.

现在让我们以粗体红色显示所有命令

zstyle ':completion:*:commands' list-colors '=*=1;31'

但内置命令有一点点复杂的颜色(从256调色板)

zstyle ':completion:*:builtins' list-colors '=*=1;38;5;142'

类似于别名

zstyle ':completion:*:aliases' list-colors '=*=2;38;5;128'

现在让我们去模式,并以不同的方式着色完成的不同部分,比如我们想要3种不同颜色的杀戮过程:

zstyle ':completion:*:*:kill:*' list-colors '=(#b) #([0-9]#)*( *[a-z])*=34=31=33'

这里的语法有点复杂,即
‘=(#B)(模式1)(模式2)= Format0中=格式1 = FORMAT2’
其中format0用于与任何模式都不匹配的所有内容.
因此,进程ID(第一个模式)将为红色,处理名称(第二个模式)为黄色,其余为蓝色:

最后,让我们尝试一些有用的’ – ‘字符串,你要求:

zstyle ':completion:*:options' list-colors '=^(-- *)=34'

这将以蓝色显示所有命令选项,但该选项的描述将保持正常.

请注意,某些选项以’ – ‘开头,因此我们必须使用’ – ‘(带空格)来仅匹配描述,并使用^取消模式以应用选项的颜色.

希望这有帮助

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读