rxvt介绍

rxvt一个功能强大的终端配置示例

rxvt 是一个功能强大的的终端,它占用资源少,启动速度快,很多人都喜欢使用它。所以我在这里介绍一下Debian系统中rxvt中文终端的安装。在 Debian中有很多个rxvt包,可用apt-cache search rxvt命令查询。主要有以下三类,一个就叫rxvt,不支持中文显示;一个叫rxvt-ml,支持GB和BIG5中文编码;还有一个叫rxvt- unicode,支持unicode编码。第一种不支持中文,这里就不讨论了。下面分别讨论rxvt-ml和rxvt-unicode两种rxvt终端的安装。

在使用rxvt中文终端前,需先把GNOME或KDE桌面的中文环境配置好。这样才能在rxvt中正常显示中文和使用中文输入法(我用fcitx)。

安装rxvt-ml

debian:~# apt-get install rxvt-ml

安装完成后,在/usr/bin目录下会生成几个rxvt程序,分别是crxvt crxvt-big5 crxvt-gb grxvt krxvt 和一个指向/etc/alternatives/rxvt的链接文件rxvt。这六个程序分别对应不同的语言编码环境,crxvt-gb用于中文GB编码环境;crxvt-big5用于大五码编码环境;krxvt用于日文环境,我测试过,krxvt也可用于中文环境;grxvt用于greek键盘环境; crxvt也是用于大五码环境;rxvt链接默认指向krxvt。

对于我们来说,只需使用crxvt-gb这个程序就可以了。为了能正常显示中文,我们需把locale环境配置成zh_CN.GB2312。具体配置方式可参见GNOME和KDE桌面环境中的locale配置。重启X会话使 locale生效,这样就可用crxvt-gb使用rxvt中文终端了。

安装rxvt-unicode

debian:~# apt-get install rxvt-unicode

安装完成后,直接运行rxvt或rxvt-unicode即可,对locale好象没有什么要求。rxvt-unicode还有两个程序,一个是 urxvtd(daemom),一个是urxvtc(client)。通过这对程序可用一个线程打开任意多个终端窗口,大大提高程序启动的速度,并有效减少内存的占用。rxvt-unicode可支持多国语言,但程序启动比crxvt-gb慢好多,而且对中文字符的支持也不是太好,比如全角的双引号,在 rxvt-unicode中会变得很大,很不协调。所以功能和性能,不可能两全其美哦。

rxvt的配置选项是很丰富的,你可通过命令行或X资源文件来配置。命令行方式只能一次性改变rxvt的设置,如:

debian:~# rxvt -fn 8X16 -fg black -bg white
上句的设置表示使用8X16的字体,终端屏幕为白底黑字。

有时我想把调整好的配置保存起来,不用每次都在命令行输入大量的配置信息。这时我们可以用X系统的资源文件~/.Xresources,如果用户主目录如没有可自行创建。内容如下:

! my rxvt setting
Rxvt.background:black
Rxvt.foreground:white
Rxvt.colorBD:yellow
Rxvt.colorUL:green
Rxvt.multichar_encoding:gb2312
Rxvt.scrollBar:True
Rxvt.scrollBar_right:True
Rxvt.scrollBar_floating: False
Rxvt.scrollstyle: next
Rxvt.saveLines:1500
Rxvt.color0:black
Rxvt.color1:red
Rxvt.color2:#3a5da3
Rxvt.color3:#4b76cc
Rxvt.color4:RoyalBlue4
Rxvt.color5:magenta
Rxvt.color6:#a1b5dd
Rxvt.color7:#8a95aa
Rxvt.color8:#616668
Rxvt.color9:#075982
Rxvt.color10:#0f82bc
Rxvt.color11:#13a9f4
Rxvt.color12:SkyBlue2
Rxvt.color13:#63c2f2
Rxvt.color14:#6caccc
Rxvt.color15:#dbeff9
Rxvt.font:-b&h-lucidatypewriter-medium-r-normal-*-14-*-*-*-*-*-iso8859-*
Rxvt.mfont:-*-*-medium-r-normal-*-16-*-*-*-c-*-gb*-*
Rxvt.menu:/etc/X11/rxvt.menu
Rxvt.preeditType:Root

在rxvt-unicode中资源文件的名称前缀改为rxvt,而不是Rxvt。

修改完资源文件后,需运行以下命令使配置生效,或重启X会话。一般我们选择前者:

debian:~# xrdb .Xresources

rxvt的配置参数有很多,可使我们定置出个性化的终端。详细的参数**询man页或用rxvt --help列出。配置很简单方便的,有兴趣的朋友可测试一下。我在这里就不一一介绍了。

GNOME和KDE环境下rxvt中文终端的设置方式是一样的。

下面为在Ubuntu环境中rxvt的配置示例仅供参考:

Xft.dpi:96

!urxvt setting 
URxvt.background:white 
URxvt.foreground:lightblue 
URxvt.colorBD:blue 
URxvt.colorUL:red 
URxvt.scrollBar:True 
URxvt.scrollBar_right:True 
!set the artificial transparency of the v.t. 
URxvt.inheritPixmap: True 
URxvt.shading:100 
URxvt.saveLines:1500 
URxvt.color4:RoyalBlue4 
URxvt.color12:SkyBlue2 
URxvt.tintColor:Grey25 
Rxvt.preeditType:Root 
URxvt.borderLess:False 
URxvt.title: urxvt 
URxvt.font:xft:Lucida Console:size=10:antialias=true,xft:STHeiti:size=10:antialias=true


另外还有转载的一篇http://forum.ubuntu.org.cn/viewtopic.php?t=22610

1. Why: 不少人都是用Qterm上bbs的,Qterm很不错,为什么要用urxvt + screen去上bbs? 
Qterm要依赖QT库,我觉得没必要装那么些库;Qterm上bbs需要开一个新窗口,我很懒,不想把手从键盘上面挪开;Qterm会使用自己的字体设置,有时候让我觉得挺讨厌。(骂吧,尽管骂我变态吧!我不在乎。:P) 

2. What: 什么是urxvt,什么是screen? 
urxvt就是rxvt-unicode,一个小巧的支持unicode的终端模拟。screen,这个东西我也不知道怎么形容它,你可以看作给你的终端(如gnome-terminal,konsole,xterm,rxvt)加上分页(Tab)功能的插件。 

3. How: 说了半天,怎么玩? 
3.1 安装: 
代码:
sudo apt-get install rxvt-unicode screen

3.2 locale:以我的配置为例,我是在英文环境下输入中文的配置,使用unicode。我用的字体是文泉驿。
/etc/environment
代码:
LANG="en_US.UTF-8"
LANGUAGE="en_CN:en_US:en_GB:en"
LC_CTYPE="zh_CN.UTF-8"
LC_ALL=en_US.UTF-8
GST_ID3_TAG_ENCODING=GBK

3.3 配置urxvt:
编辑~/.Xresources
代码:
!!=============================================================================
!! 设置 Xftp.dpi(字体分辨率)
!!=============================================================================
Xft.dpi:96 
!!=============================================================================
!! RXVT-unicode setting
!!=============================================================================
!urxvt setting
!URxvt.geometry:80x36+80+80
URxvt.background:      black
URxvt.foreground:      white
URxvt.colorBD:         yellow
URxvt.colorUL:         green
URxvt.scrollBar:      True
URxvt.scrollBar_right:      True
URxvt.scrollstyle:      next
!set the artificial transparency of the v.t.
URxvt.inheritPixmap:      True
URxvt.shading:         500
URxvt.saveLines:      1500
URxvt.color4:         RoyalBlue4
URxvt.color12:         SkyBlue2
URxvt.tintColor:      Grey25
URxvt.preeditType:      Root
URxvt.borderLess:      False
URxvt.title:         roylez's urxvt
URxvt.font:xft:DejaVu Sans Mono:pixelsize=15:antialias=False, \
xft:wenquanyi bitmap song:pixelsize=15:antialias=False

然后
代码:
xrdb ~/.Xresources

开个urxvt窗口看看,是不是已经可以用ctrl+space呼出输入法输入且使用正确字体显示中文了?

3.4 现在就可以用screen上bbs了,先简单说说screen的用法:
输入screen启动,启动输入ctrl+a再按相应的快捷键实现screen的相应操作。常用的有d(应输入为ctrl+a d,后同),退出;?,帮助;c,新screen;",screen列表;数字键,切换到对应的screen;:,动态更改encoding。是不是很像vim的minibufferexplorer?
由于screen可以动态更改encoding,我们可以利用这一点来在不更改终端encoding的情况下上bbs。
上简体bbs,使用gbk字符集,输入
代码:
ctrl+a :encoding gbk


上繁体bbs,使用big5字符集,不过输入法不能正常使用
代码:
ctrl+a :encoding big5


4. 一些问题
上lqqm的时候,版面帖子列表会出错,猜测是火鸟bbs或者lqqm的代码问题,因为繁体的bbs hkday.net并无这种情况发生。没有防止发呆的功能,时间长了会自动掉线——不过这对我是好事,省得我在bbs上耗着。

写在最后的一些东东,zsh

一个终端(terminal),能够显示和输入unicode中文的条件其实是要终端和shell都支持unicode,urxvt和bash正好满足这个条件。我最常用的shell,其实是zsh,很厉害的自动补全功能。我的urxvt的启动命令其实是urxvt -e zsh。但是,源里的zsh的版本是4.2.5,而支持中文的zsh的版本是4.3,所以我用urxvt+zsh的时候是不能显示中文的。但是,当我输入screen之后,由于screen会自动调用sh,而ubuntu里面的sh其实就是bash,所以,在screen的环境里面,我的urxvt又可以输入和显示中文了。想试试zsh吗?下面有我的zshrc。不用害怕,zsh兼容绝大部分bash命令和sh命令。
代码:
#!/bin/zsh

# completion
autoload -U compinit
compinit

# correction
setopt correctall

# prompt
autoload -U promptinit
promptinit
prompt oliver

# ls color alias
if [ "$TERM" != "dumb" ]; then
    eval "`dircolors -b`"
    alias ls='ls --color=auto'
    #alias dir='ls --color=auto --format=vertical'
    #alias vdir='ls --color=auto --format=long'
fi





你可能感兴趣的:(终端工具,Linux)