为什么是rxvt-uicode
终端软件有很多,gnome有gnome terminal,kde有konsole,还有xfce-terminal,xterm,rxvt, aterm, eterm等等,这里我选择的是rxvt-unicode。主要因为我们所需要的终端,需要具有以下的特性:
- 快速(rxvt-unicode基于rxvt,rxvt基于xterm,xterm的快速是毋庸置疑的);
- 支持utf8,否则不能正确显示简体和繁体中文(从rxvt-unicode的名字就可以看出来了);
- 易配置,更换系统时只需要保留配置文件就能恢复(rxvt-unicode配置可以写在~/.Xdefaults或者~/.Xresources中);
- 支持透明,因为我们需要eyecandy来防止审美疲劳(rxvt-unicode不光支持伪透明,也可以做到真透明,不过我没有试过)。
- 可以以server/client模式启动,更加节省系统资源(urxvtcd);
- 显示彩色man page。
rxvt-unicode的配置
代码: 全选
Xft.dpi:96
!! RXVT-unicode setting
URxvt.geometry: 80x36+80+80
URxvt.background: black
URxvt.foreground: white
URxvt.scrollBar: False
URxvt.scrollstyle: next
! Use shift+pageup/down to scroll in screen
URxvt.secondaryScroll: True
!set the artificial transparency of the v.t.
URxvt.inheritPixmap: True
URxvt.tintColor: grey
URxvt.shading: 500
URxvt.saveLines: 1500
URxvt.preeditType: Root
URxvt.borderLess: False
URxvt.title: roylez's urxvt
!italicFont and boldItalicFont undefined
URxvt.font:-*-fixed-medium-r-*-*-15-*-*-*-*-*-*-*,\
xft:wenquanyi bitmap song:medium:pixelsize=15:antialias=False
URxvt.boldFont:-*-fixed-bold-r-*-*-15-*-*-*-*-*-*-*,\
xft:wenquanyi bitmap song:bold:pixelsize=15:antialias=False
!URxvt.font:xft:terminus:medium:size=13:antialias=false,\
!xft:wenquanyi bitmap song:medium:pixelsize=13:antialias=False
!redefine color to use tango theme in vim
!Black
URxvt.color0: #000000
URxvt.color8: #555753
!Red
URxvt.color1: #CC0000
URxvt.color9: #EF2929
!Green
URxvt.color2: #4E9A06
URxvt.color10: #8AE234
!Yellow
URxvt.color3: #C4A000
URxvt.color11: #FCE94F
!Blue
URxvt.color4: #3465A4
URxvt.color12: #729FCF
!Magenta
URxvt.color5: #75507B
URxvt.color13: #AD7FA8
!Cyan
URxvt.color6: #06989A
URxvt.color14: #34E2E2
!White
URxvt.color7: #D3D7CF
URxvt.color15: #EEEEEC
1 字体配置。
字体使用了fixed和文泉驿的组合,两个都是点阵字体。使用点阵字体的好处首先是快,然后就是够sharp。Truetype字体在大字号确实比较好看,但是在终端显示方面,效果明显不如点阵来得美观。
可惜的是,适合中文的点阵字体实在不多。有个unifont ,不过我没有尝试过。文泉驿是个不错的选择,简体繁体都不错,可惜没有楷体和斜体,所以我没有定义Urxvt.italicFont。但是文泉驿的英文字型不适合终端显示,扩展ascii的字符部分尤其差,所以一定要搭配一个合适的英文字型。这里我用的是misc-fixed,如果你愿意用更小的字型,你可以尝试terminus。
![图片](http://farm2.static.flickr.com/1398/884130939_2f56c2f711_o.png)
2 颜色配置。
可以看出,我把rxvt里面的颜色重新定义了,定义成了tango风格配色,在vim中搭配tango.vim,可以达到很好的效果。tango.vim可以在这里下载。这是我对tango.vim进行了小小修改之后的效果。
![图片](http://farm2.static.flickr.com/1094/884130987_f11eaafb43_o.png)
Shell配置
shell的选择
我的选择是zsh,因为它的补全功能很贴心,而且我特别喜欢它的walters提示符。如果用bash,bash_completion是一定要装的。
定义更多的ls颜色
大家也许注意到了,ls有颜色显示,是因为有这样一个alias的存在的缘故
代码: 全选
alias ls='ls --color=auto -X'
代码: 全选
dircolors -p ~/.lscolor
代码: 全选
eval '`dircolors -b $HOME/.lscolor`'
在.bashrc或者.zshrc里面加入下列alias,可以实现彩色grep,df/du的时候用K/M显示大小,用del命令把文件删除到gnome回收站。用smth上newsmth.org,用hkday上hkday.net,而且发帖不会乱码。
代码: 全选
alias grep='grep --color=always'
alias less='less -R'
alias df='df -Th'
alias du='du -h'
del() {mv -vi -- $* ~/.Trash}
alias smth='luit -encoding gbk -- telnet newsmth.org'
alias hkday='luit -encoding big5 -- telnet hkday.net'
![图片](http://farm2.static.flickr.com/1343/884130969_61454af614_o.png)
必不可少的screen
什么是screen
screen这个名字老实说起得很有误导作用,它代表的是一个叫做gnu screen的软件。这个软件的主要作用说简单了,就是给你的终端添加tab的功能。也许你会问,为什么不用gnome-terminal/console/mlterm之类本身就有tab功能的终端呢?为什么不用fluxbox的标题栏tab功能呢?原因很简单,在ssh或者telnet远程登录的时候,能够让你还能使用tab的,只有screen!
![图片](http://farm2.static.flickr.com/1415/884130963_47a55d4af5_o.png)
screen的配置
代码: 全选
# 这是配置那个tab bar
hardstatus alwayslastline
hardstatus string '%{=b}%{b}%-w%{.BW}%10>[%n %t]%{-}%+w%< %=%{G}%C%A, %Y-%m-%d'
termcapinfo xterm|rxvt ti@:te@
# screen里面的所有进程退出,screen就自动退出
autodetach on # default: on
# 退出vim/nano之后自动刷新屏幕
altscreen on
# 启动等待,显示版本
msgwait 2
version
# 启动信息
startup_message off # default: on
# 启用beep报错
vbell off
# 默认的shell,不设置的话就是bash
shell zsh
## Keybindings ##
# F10改标题
bindkey -k k; title
# F11左边的tab
bindkey -k F1 prev
# F12右边的tab
bindkey -k F2 next
ctrl+c都不是很麻烦。
换个encoding上bbs
screen可以动态更改encoding,比如想上繁体bbs,只需要依此敲入ctrl+a :encoding big5,然后telnet到你想要上的bbs就行啦。再次看出文泉驿的好处,繁体字都能显示^_^。当然,这样上bbs不如用luit的alias来得方便。
![图片](http://farm2.static.flickr.com/1037/884130739_8fe836ead9_o.png)
给特定程序绑个tab
如果你经常用mutt/irssi,或者上某个bbs,可以在screenrc里面加这样几句
代码: 全选
bind 'm' screen -t email mutt
bind 'i' screen -t chat irssi
bind 's' screen -t smth luit -encoding gbk -- telnet newsmth.org
代码: 全选
alias mutt='screen -t email mutt'
代码: 全选
_______________________
< 是不是应该给点掌声? >
-----------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||