在osx系统下,对系统自带的终端进行配色可以通过设置PS1环境变量来实现的
|
1 |
[\u@\h: ] \w \$ |
示例:
|
1 |
[elmman@192: ] ~ $ |
解析:
[ ]这个方括号是自己加的无意义符号
\u表示用户(这里是elmman)
@表示@(这里是@)
\h表示host(这里是192)
:也是个无意义符号(这里是:)
\w表示当前目录(这里是~,即家目录)
\$表示命令提示符(这里是\$)
默认 : \e[00m
黑色 : \e[01;30m
红色 : \e[01;31m
绿色 : \e[01;32m
黄色 : \e[01;33m
蓝色 : \e[01;34m
洋红 : \e[01;35m
青色 : \e[01;36m
白色 : \e[01;37m

打开终端->Terminal->Preferences…(或者command + , )。也就是俗称的偏好设置

在这里的第一个下拉框选择homebrew主题,然后直接退出,且重启终端,这时候可以看到终端变成黑色背景、绿色字体的主题。(这才刚开,还没结束)

首先呢,举个例子。我想把prompt改成上面示例的样子
|
1 |
192: elmman ~ $ vim ~/.bash_profile |
在.bash_profile文件最后添加如下代码
|
1 |
export PS1='[\u@\h: ] \w \$ ' |
然后重启终端,这时候你就可以看到终端变成下面这个样子了
|
1 |
[elmman@192: ] ~ $ |

接着,我想把elmman用户名变成红色怎么做?很简单,就在\u前面加上[\e[01;31m]和\u后面加上[\e[00m]行了。
注:这里需要特别注意到是颜色码必须前后加上[]包围起来,
不然终端可能会出现无法自动换行、或者tab键自动补全失效的情况
|
1 |
[elmman@192: ] ~ $ vim ~/.bash_profile |
在.bash_profile文件修改PS1变量代码
|
1 |
export PS1='[\[\e[01;31m\]\u\[\e[00m\]@\h: ] \w \$ ' |
还是重启终端,这是就可以看到

总结下:也就是想给哪个字段配色就只需要在其前面加上shell颜色码即可,当然还得在字段后面带上\e[00m表示后面的字段还是使用默认。不然就会变成什么样?自己可以去试试。
最后以下是本人自己的配色方案,(这里多了两个参数CLICOLOR和LSCOLORS)。
CLICOLOR=1表示开启命令行颜色设置。
LSCOLORS=gxfxcxdxbxegedabagacad这个参数是对ls命令展示的内容进行配色,google下就有很多关于这个环境变量的解释,这里不在赘述。
|
1 2 3 |
export CLICOLOR=1 export LSCOLORS=gxfxcxdxbxegedabagacad export PS1='\[\e[01;33m\][\[\e[01;32m\]\u\[\e[01;33m\]@\[\e[01;35m\]\h:\[\e[01;33m\]] \[\e[01;36m\]\w \[\e[01;32m\]\$ ' |
效果图

vim语法高亮就比较简单了,只需要为vim开启语法高亮功能,再选择一款好看一点的主题就行来
|
1 |
[elmman@192:] ~ $ vim ~/.vimrc |
在.vimrc文件末尾添加如下代码
|
1 |
syntax on |
然后随便打开一个php(或其他语言的代码文件),就可以看到

上面系统默认的主题可能不满意,我们可以找到vim的color主题目录
|
1 |
cd /usr/share/vim/vim73/colors/ && ls |
vim自带的一些主题包就都在colors这个目录下了(不同电脑目录可能不一样~~~)

假设想要darkblue这一款的主题
|
1 |
[elmman@192:] ~ $ vim ~/.vimrc |
然后在末尾添加代码
|
1 |
colorscheme darkblue |
再打开一个代码文件查看下效果

|
1 |
vim ~/.bash_profile |
末尾添加(加完保存退出,重启终端)
|
1 2 3 |
export CLICOLOR=1 export LSCOLORS=gxfxcxdxbxegedabagacad export PS1='\[\e[01;33m\][\[\e[01;32m\]\u\[\e[01;33m\]@\[\e[01;35m\]\h:\[\e[01;33m\]] \[\e[01;36m\]\w \[\e[01;32m\]\$ ' |
|
1 |
vim ~/.vimrc |
末尾添加
|
1 2 |
syntax on colorscheme darkblue |