zsh - 如何在 zsh 中自定义当前选定(突出显示)完成的外观?

标签 zsh zshrc zsh-completion

主要问题

我想在所选完成的开头和结尾添加电力线字符,如下所示:

  1. Started the completion menu通过插入 c 并按 TAB 键。
  2. Moved right in the completion menu按向右箭头键。
  3. Moved down in the completion menu按向下箭头键。

有没有办法让 zsh 看起来/像图片中那样?

注意事项

在创建列时应以某种方式在开头添加电力线三角形 + 空白字符,在末尾添加空白字符 + 电力线三角形以保持对齐正确。

奖金

在列表中每个补全的开头添加 2 个空格,这样当补全被选中时,文本看起来不会被移到右边。
(这个问题可以通过选择完成和不选择完成对比看出。)


备选问题

如果不更改 zsh 源代码就无法获得先前解释的行为,是否至少可以在所选完成的末尾添加电力线三角形?


我失败的尝试

  • 我已经尝试在 list-colors 样式中使用 lcrcec 变量,但是那没有帮助:
    1. 完成列表排列不当,造成了各种视觉问题。
    2. 符号已插入到完成列表的所有元素中,而不仅仅是选定的元素。
  • 我也尝试过使用 ma 变量,但我无法在开头正确插入一个字符:
    1. 该变量只需要一个代表颜色的数字,并且它可能包含在一些转义序列中,因此输出看起来不像预期的那样。

最佳答案

这对我有用。

zstyle ":completion:*:default" list-colors ${(s.:.)LS_COLORS} "ma=48;5;153;1"

使用我的 LS_COLORS 然后 ma 将我选择的背景设置为粗体和颜色 153 from https://jonasjacek.github.io/colors/ .

来自 https://www.zsh.org/mla/users/2010/msg00811.html

关于zsh - 如何在 zsh 中自定义当前选定(突出显示)完成的外观?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50125112/

相关文章:

linux - 如何在 linux mint 下的 zsh 中设置 virtualenvwrapper?

zsh - zsh完成:使用来自特定目录的路径,而不是当前目录

git - 自定义 git "bang"别名的 Zsh 完成 - Git 分支名称

ZSH auto_vim(像 auto_cd)

git - 即时更改 Git 用户

ruby-on-rails - 执行 rake 命令时无法理解 zsh 错误

zsh - oh-my-zsh 配置文件未加载

zsh 编译 : insecure directories

shell - 如何在不替换当前 shell 的情况下重新加载 ZSH 配置文件?

macos - 从 Oh-My-Zsh 历史记录中删除特定行