有没有一种直接的方法来调整 vim 和 bash 使用的颜色?例如十六进制颜色值?
答案1
vim
支持色彩方案。您可以使用和/或安装众多可用方案之一,或者编写自己的方案。
bash
另一方面,它只是一个执行程序的 shell。shell 及其输出的显示发生在支持颜色的终端应用程序内部。例如,如果您使用,gnome-terminal
您可以修改在编辑 --> 个人资料。
许多终端应用程序可以配置为使用彩色而不是单色输出,例如参见 moshen 的回答。
答案2
这里有几点需要明确:
Bash 是一个 shell,它本身并不是你想要管理颜色的地方——这更多的是一个终端(gnome-terminal、rxvt、xterm 等)。终端通常有 16、88 或 256 个调色板,这些调色板是可以呈现到控制台的预定义颜色。每种颜色都有一个数字,从 0 到 15/87/255。有些终端会让您调整将哪些特定的 RGB 颜色分配给哪些数字,但通常 0 代表黑色,1 代表红色,等等。
至于 vim,您指的是 vim 还是 gvim(GUI 应用程序)?它们在颜色方面的配置不同。Vim 允许您更改将哪些可用(编号)终端颜色分配给哪些类型的文本(普通文本、注释文本、可视选定文本等)。查看 vim 帮助中的“colorscheme”和“highlight”命令。在终端应用程序中,您只能使用终端上可用的颜色(见上文),但可以自由分配它们,定义您自己的配色方案。
另一方面,Gvim 通常可以让您指定 RGB 颜色三元组,从而对您的配色方案有更大的灵活性。
例如,在 gvim 中,这会将您的“正常”文本颜色设置为任意十六进制 RRGGBB 三元组:
:hi 正常 guifg=#123456
在 vim 中,这会将“正常”文本颜色设置为终端颜色 1,通常为红色:
:hi 正常 ctermfg=1
然后,您的终端应用程序(xterm、gnome-terminal、rxvt)可能会让您调整“红色”在 RGB 方面的真正含义。例如,有些人发现终端应用程序中的默认“蓝色”太暗,无法阅读,因此请将其调整得更亮。
答案3
bash 使用的颜色实际上是由 bash 内的特定应用程序使用的。LS 使用的颜色可以通过修改 LSCOLORS 变量来更改。在您的 ~/.bashrc 中,您可以添加类似以下内容的内容:
export LSCOLORS=ehfacxdhbhegedabagacad
export GREP_COLOR='00;38;5;157;48;5;226'
ETC...
只需指定主题即可改变 VIM 颜色。
答案4
另一个允许您为其输出选择颜色的应用程序是[less][1]
。如果您使用的是分页程序,man
那么当您查看页面时,通常会看到这些颜色。您可以通过运行和搜索代码来查看“mr”(反向视频)和“md”(粗体)等代码man
的含义。颜色代码可以在该手册页的“颜色处理”部分中找到。termcap
man 5 terminfo
示例设置:
LESS_TERMCAP_ZN=
LESS_TERMCAP_ZO=
LESS_TERMCAP_ZV=
LESS_TERMCAP_ZW=
LESS_TERMCAP_mb=$'\E[1m\E[38;5;2m'
LESS_TERMCAP_md=$'\E[1m\E[38;5;6m'
LESS_TERMCAP_me=$'\E[m\E(B'
LESS_TERMCAP_mh=
LESS_TERMCAP_mr=$'\E[7m'
LESS_TERMCAP_se=$'\E[27m\E[m\E(B'
LESS_TERMCAP_so=$'\E[1m\E[38;5;3m\E[48;5;4m'
LESS_TERMCAP_ue=$'\E[24m\E[m\E(B'
LESS_TERMCAP_us=$'\E[4m\E[1m\E[38;5;7m'