»
S
I
D
E
B
A
R
«
好色的程序员:怎么加上彩色显示
June 9th, 2009 by 一米六二

问题列表

1.终端如何支持显示彩色
     现代终端基本上都已经支持彩色显示了。【8色的显示屏是什么时候发明的?】 您可以在bash下用这段来试试:<coolcode>
echo -e “\033[40;32mcolored text\033[0;0m"
</coolcode>
如果这里出来的是彩色文字,那就说明您的终端是支持彩色显示的。如是没有出来彩色文字,那就,改您的终端类型。一般情况下您的终端软件可选的有vt100,vt102,vt220,vt320,linux,xterm等几种。我一般选linux.
2.终端颜色和颜色表:
   要在终端中显示彩色文字,需要这样输出<coolcode>
ESC[attr;frontcolor;backgroundcolor;m

要加彩色的文字。
</coolcode>

ESC是ESCAPE键,它的ASC码是十进制的27,八进制的33.所以我们用echo -e "\033..."来输入。attr是要给文字设置的属性代号,frontcolor是文字颜色代号,backgroundcolor是文字背景色代码。这些代号及意义如下:
<coolcode>

  前景             背景              颜色 
   --------------------------------------- 
   30                40               黑色 
   31                41               紅色 
   32                42               綠色 
   33                43               黃色 
   34                44               藍色 
   35                45               紫紅色 
   36                46               青藍色 
   37                47               白色 

   代码              意义 
   ------------------------- 
   0                 OFF 
   1                 高亮显示 
   4                 underline 
   5                 闪烁 
   7                 反白显示 
   8                 不可见 
</coolcode> 
2.PS1,ls ,grep 如何加彩色
  PS1是bash一个特殊的变量,用来指定提示符。我们只要修改它的值就可以指定提示符如何显示。在这里\h表示主机名,\u表示当前用户,\w表示当前目录。我的设置是:
<coolcode>export PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\H>:\w>\[\e[0m\]“</coolcode> 

这里bash的提示符已经变成彩色了,但是ls的输出还不是彩色的。也很简单,man一下就知道了,在linux下,

<coolcode>alias ls=”ls –color=auto”</coolcode>就行了。在FreeBSD下,<coolcode>alias ls=”ls -G”</coolcode>即可。

grep也是支持彩色的:
<coolcode>
alias grep=”grep –color=auto”
</coolcode> 
好了,现在我们可以把~/.bashrc文件 改一下:
<coolcode>
export PS1=”\[\e[36;1m\]\u@\[\e[32;1m\]\H>:\w>\[\e[0m\]”
alias ls=”ls –color=auto”
alias grep=”grep –color=auto”
</coolcode> 
 

2.svn diff怎么加彩色:
我写了一个脚本,放在http://xurenlu.googlecode.com/files/svncolor.py这里。只需要svn diff|python svncolor.py即可把svn diff的结果转成彩色的。

3.git diff怎么加彩色
git diff加颜色非常简单:修改.git/config,加上
<coolcode>
[diff]
    color = auto 
</coolcode> 

4.vim 怎么支持彩色
非常简单,如果是php文件:
<coolcode>
:set ft=php
:set syntax
</coolcode> 
就行了。 

6.怎么去彩色
为什么要去颜色呢,因为有时候我们需要把一些输出重定向到vim中间,这时在vim中会出现很多控制字符。所以我们要再转成黑底白字。
我这里也有一个脚本。 
<coolcode>
#!/usr/bin/python
import sys,re
PESC=chr(27)
nocolor_re=re.compile(PESC+’\[[\d\;]+m’)
if __name__==”__main__”:
    while(True):
        line=sys.stdin.readline()
        if not line: break
        line=line.replace(”\n”,”")
        print nocolor_re.sub(”",line)
</coolcode>


One Response  
  • JamesD JAPAN Windows XP Opera 9.00 writes:
    June 11th, 2009 at 9:36 pm

    Thanks for the useful info. It’s so interesting


Leave a Reply

»  Substance: WordPress   »  Style: Ahren Ahimsa
29015 页面访问次数, 578 今天
11220 访问数, 167 今天
FireStats icon 由FireStats提供支持