linux - zsh 下划线常用补全前缀

标签 linux zsh zsh-completion

我见过类似 this 的东西zsh.org 线程和 this Reddit 线程显示如何使用颜色突出显示完成的公共(public)前缀。不幸的是,这会覆盖我设置的 LS_COLORS。我从 LS_COLORS 中获得了很多信息,如果可能的话,我希望它们不受干扰。相反,我宁愿用下划线标记公共(public)前缀(保留颜色)。

像这样

Like this, but with an underline instead of a color

但使用下划线而不是颜色,使我的 LS_COLORS 完好无损。

编辑:

我有一个可能的解决方案,但它需要能够为不同的标签(而不是组)指定不同的 list-colors。我们将每种类型的文件(符号链接(symbolic link)、管道等)放入它自己的标签中,并有一个包含所有文件的组。

最佳答案

有一个警告的解决方案:

ls_colors_parsed=${${(@s.:.)LS_COLORS}/(#m)\**=[0-9;]#/${${MATCH/(#m)[0-9;]##/$MATCH=$MATCH=04;$MATCH}/\*/'(*files|*directories)=(#b)($PREFIX:t)(?)*'}}

function _list_colors () {
  local MATCH
  reply=("${(e@s/ /)ls_colors_parsed}")

  # fallback to a catch-all
  reply+=("=(#b)($PREFIX:t)(?)*===04")
}

zstyle -e ':completion:*:default' list-colors _list_colors

这在慢速机器上会变慢,并且它只适用于文件模式匹配,不适用于文件类型(目录、FIFO 等)匹配。但是,当没有 PREFIX 或 PREFIX 是完整匹配项时,它们仍会通过。

关于linux - zsh 下划线常用补全前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25049937/

相关文章:

git - 忽略 zsh git autocomplete 中的 ORIG_HEAD

linux - 外壳返回 "PuTTYPuTTYPuTTY..."

linux - Rails 4 中客户端 cookie 值是如何生成的?

linux - 使 shell 脚本在调用它们的位置上变得稳健

terminal - 更新ZSH中途不小心退出,无法输入任何命令

zsh - 从文件中生成 zsh 完整参数

Linux命令(计算总和)

linux - 安装glibc报配置LD_LIBRARY_PATH错误

ZSH:每次 cd 后自动运行 ls

Zsh:智能自动完成功能?