Linux在编辑配置文件时,怎么使注释行和非注释行的字体颜色不一样?

Linux在编辑配置文件时,怎么使注释行和非注释行的字体颜色不一样?,第1张

把下面的设置写到 .vimrc 中

如果没有自己创建一个

mkdir ~/.vimrc

1 set nu

2 syntax enable

3 syntax on

4 set showmatch

5 set history=4000

6 set tabstop=4

7 set hls

8 set ruler

9 set showcmd

10 set novisualbell

11 set nocompatible

12 "colorscheme evening

13 set noeb

14 set autoindent

15 set cindent

16 set hlsearch

17 set incsearch

在linux中,我们在编辑时需要对文档编辑或者一些信息的显示加上颜色,增强阅读的效果

格式: echo -e "\033[字体颜色字背景颜色m字符串\033[0m"

要显示什么颜色,优先是先判断位置,按语法上来说,应该是先字体色,然后是背景色,但是字体色的地方数值为43,所以判断为背景的颜色,而在后面的31本应该是背景色,结果数值31位字体的颜色,所以显示的效果是字体的颜色为红色,而不是背景红色,假设这个31是数值41,则表示背景的为红色,整体的效果就是红色背景,字体处没有颜色,为默认的白色,且效果是闪烁。

其中设置颜色的格式为:\033[ m …… \033[0m,其中ascii code是对颜色调用的始末.也可以表示为\e[FBm…….\e[0m

字背景颜色范围: 40--49                  字颜色: 30--39

例如显示红色,其中红色^[[31mred^[[0m其中^[是在插入编辑模式下按键进去额ctr+v+[这三个按键输入的。

假设写在文档tt1写入对应的语句来查看,通过cat  tt1验证效果

^[[31mred^[[0m :表示对应的字是红色字体,没有底色,如下截图

^[[31mred^[[44m:表示红色字体,底色为紫红色。假设写在文档tt1,后面cat tt1.这个屏幕底色都是蓝色,字都是红色如下截图

^[[3144mred^[[0m:表示红色字体,字和屏幕的底色为蓝色,背景没有底色,和^[[31mred^[[44m效果一样。如下截图

^[[3144mred^[[44m:表示红色字体,底色都是蓝色

在命令行里输入命令:echo -e '\e[43314mmagedu\e[0m',得到如下的效果

PS1是Linux终端用户的一个环境变量,用来说明命令行提示符的设置。在终端输入命令:echo $PS1,就会输出PS1的定义:

默认的PS1变量值为 : PS1="[\u@\h \W]$"

PS1的定义中个常用的参数的含义如下:

给PS1赋值如下:

PS1="[\[\e[3140m\]\u\[\e[3740m\]@\[\e[3440m\]\h\[\e[3740m\] \W]\\$\[\e[0m"

这里需要注意,颜色的结束调用符号,要放在最后面,否则当使用命令history查看历史命令时,会出现各种异常的显示

正确的结果得到的结果如下图

当把结束符调整到$前面,如PS1="[\[\e[3140m\]\u\[\e[3740m\]@\[\e[3440m\]\h\[\e[3740m\] \W]\[\e[0m\\$",使用history查找的时候出现了如下的异常显示

注意,这里赋值的时候要用单引号才能得到要的效果,只是单纯改变颜色,其他值不改变,如果赋值用双引号,如下

错误写法:PS1="[\[\e[3140m\]\u\[\e[3740m\]@\[\e[3440m\]\h\[\e[3740m\]\W]\[\e[0m\$"

得到的效果如下:

如果是root时,提示符为:# ,普通用户则为:$,但是双引号后root的提示符为$,是不对的

解决办法:如果用双引号,需要再\$前再加一个\,语句如下

PS1="[\[\e[3140m\]\u\[\e[3740m\]@\[\e[3440m\]\h\[\e[3740m\] \W]\\$\[\e[0m"

赋值为PS1='\[\e[43m\][\[\e[31m\]\u@\[\e[34m\]\h \W]\$\e[0m'

效果如下截图

这个例子,我们可以明显看出,\e[颜色值m这个是说明接下来的颜色从这里开始是什么颜色,\e[0m说明的是颜色的结束位置,

这里需要注意的是,如果没有通过\[   \]对每一个颜色进行界定,使用过程,如上翻历史页,就会出现显示异常。

将设置好的PS1变量写到家目录下的.bashrc 里面,这样后面开启的终端都有效。

$ vim .bashrc

打开后添加一行

PS1="[\[\e[3140m\]\u\[\e[3740m\]@\[\e[3440m\]\h\[\e[3740m\]\W]\[\e[0m\\$"

保存退出再次登录时显示的颜色也会是我们设定的值了。

linux下设置ls命令显示文件、文件夹颜色:

1. LS_COLORS

用 dircolors -p 可以 看到缺省的颜色设置,包括各种颜色和“粗体”,下划线,闪烁等定义。

环境变量LS_COLORS时用来设置GNU ls的--color选项中的颜色的。

# Below are the color init strings for the basic file types. A color init

# string consists of one or more of the following numeric codes:

# Attribute codes:

# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed

# Text color codes:

# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white

# Background color codes:

# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white

NORMAL 00 # global default, although everything should be something.

FILE 00 # normal file

DIR 0134 # directory

故,要设置ls的颜色,则在SHELL的配置文件(以下是tcsh的配置文件:.tcshrc,对于bash略有不同)中添加下面一行:

setenv LS_COLORS 'no=00:fi=00:di=0133:ln=0136:pi=4033:so=0135:bd=403301:cd=403301:or=01053741:mi=01053741:ex=0135:*.cmd=0135:*.exe=0135:*.com=0135:*.btm=0135:*.bat=0135:*.sh=0135:*.csh=0135:*.tar=0131:*.tgz=0131:*.arj=0131:*.taz=0131:*.lzh=0131:*.zip=0131:*.z=0131:*.Z=0131:*.gz=0131:*.bz2=0131:*.bz=0131:*.tz=0131:*.rpm=0131:*.cpio=0131:*.jpg=0135:*.gif=0135:*.bmp=0135:*.xbm=0135:*.xpm=0135:*.png=0135:*.tif=0135:'

即可,可以参照上面的英文自行配置。

另:/etc/DIR_COLORS 文件为系统默认颜色参数配置文件

如果想修改定义自己的颜色参数配置文件,请执行如下 *** 作:

1) cp /etc/DIR_COLORS $HOME/.dir_colors

2) 修改中的颜色定义 $HOME/.dir_colors

2. CLICOLOR

# CLICOLOR是用来设置是否进行颜色的显示。CLI是Command Line Interface的缩写。

setenv CLICOLOR 1

# LSCOLORS是用来设置当CLICOLOR被启用后,各种文件类型的颜色

setenv LSCOLORS gxfxaxdxcxegedabagacad

LSCOLORS的值中每两个字母为一组,分别设置某个文件类型的文字颜色和背景颜色。LSCOLORS中一共11组颜色设置,按照先后顺序,分别对以下的文件类型进行设置:

directory

symbolic link

socket

pipe

executable

block special

character special

executable with setuid bit set

executable with setgid bit set

directory writable to others, with sticky bit

directory writable to others, without sticky bit

LSCOLORS中,字母代表的颜色如下:

a 黑色

b 红色

c 绿色

d 棕色

e 蓝色

f 洋红色

g 青色

h 浅灰色

A 黑色粗体

B 红色粗体

C 绿色粗体

D 棕色粗体

E 蓝色粗体

F 洋红色粗体

G 青色粗体

H 浅灰色粗体

x 系统默认颜色

所以,如果我们想把目录显示成红色,就可以把LSCOLORS设置为bxfxaxdxcxegedabagacad就可以了

////////////////////////////////////////////

LSCOLORS 的含义:

LSCOLORS The value of this variable describes what color to use

for which attribute when colors are enabled with

CLICOLOR. This string is a concatenation of pairs of the

format fb, where f is the foreground color and b is the

background color.

The color designators are as follows:

a black

b red

c green

d brown

e blue

f magenta

g cyan

h light grey

A bold black, usually shows up as dark grey

B bold red

C bold green

D bold brown, usually shows up as yellow

E bold blue

F bold magenta

G bold cyan

H bold light greylooks like bright white

x default foreground or background

Note that the above are standard ANSI colors. The actual

display may differ depending on the color capabilities of

the terminal in use.

The order of the attributes are as follows:

1. directory

2. symbolic link

3. socket

4. pipe

5. executable

6. block special

7. character special

8. executable with setuid bit set

9. executable with setgid bit set

10. directory writable to others, with sticky bit

11. directory writable to others, without sticky

bit

The default is “exfxcxdxbxegedabagacad”, i.e. blue fore-

ground and default background for regular directories,

black foreground and red background for setuid executa-

bles, etc.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11560875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存