![如何更改 bash 完成结果颜色](https://linux22.com/image/142044/%E5%A6%82%E4%BD%95%E6%9B%B4%E6%94%B9%20bash%20%E5%AE%8C%E6%88%90%E7%BB%93%E6%9E%9C%E9%A2%9C%E8%89%B2.png)
由于未知原因,bash 似乎将完成结果视为损坏的符号链接。看起来真的很令人不安。
系统信息:
- Bash 版本:4.4.23(1)-发布
- 操作系统:Manjaro Linux
编辑:据我所知,通过设置颜色colored-stats
中的 GNU Readline 选项~/.inputrc
将完全关闭:
set colored-stats off
但这也会在自动完成时禁用其他着色,例如目录着色。
我认为这很奇怪,因为类似损坏的符号链接的着色发生在我家里的 Manjaro Linux 机器上,但不是我工作的 Arch Linux 机器上。两者都应用相同的bashrc
和inputrc
。但我暂时没有检查其他潜在的差异。
再次编辑:粘贴我的~/.inputrc
供参考:
$include /etc/inputrc
$if mode=emacs
# cycle through possible completions
TAB: menu-complete
# complete until the end of common prefix before cycling through possible completions
set menu-complete-display-prefix on
# show possible completions if more than one completions are possible
set show-all-if-ambiguous on
set show-all-if-unmodified on
# do not duplicate characters after the cursor if they consist partially of possbile completion
set skip-completed-text on
# display colors when doing completion as `ls` does
set colored-stats on
# color tab-completion matched prefix part
set colored-completion-prefix on
# fuck off stty key bindings. (stty -a)
set bind-tty-special-chars off
"\C-w": unix-word-rubout
"\eh": kill-region
"\eH": copy-region-as-kill
"\C-x\'": "\'\'\C-b"
"\C-x`": "``\C-b"
"\C-x\"": "\"\"\C-b"
"\C-x{": "{}\C-b"
"\C-x[": "[]\C-b"
"\C-x(": "()\C-b"
"\C-x0": vi-eWord
"\eF": "\C-x0\C-f"
"\eB": vi-bWord
"\eD": "\e \eF\eh"
$endif
答案1
正如您所提到的,GNU Readline 的完成着色是通过colored-stats
in启用的.inputrc
。
颜色由 确定$LS_COLORS
,可以用 生成dircolors
。
完成建议似乎从MISSING
中的属性继承了它们的颜色~/.dircolors
。将其注释掉(或更改为不那么令人不安的内容,例如删除05;
以禁用闪烁)会以默认颜色打印建议。中的相应条目$LS_COLORS
是(带有 ANSI 颜色和 的...:mi=03;31:...
示例)。03
31
类似的讨论:
https://bugzilla.redhat.com/show_bug.cgi?id=1648170
参考:
https://wiki.archlinux.org/index.php/Readline#Colorized_completion
https://wiki.archlinux.org/index.php/Color_output_in_console#ls
dircolors:全局修改颜色设置
https://askubuntu.com/questions/466198/how-do-i-change-the-color-for-directories-with-ls-in-the-console