星期一, 四月 21, 2008

cygwin rxvt 及其中文支持配置

安装 cygwin 本身是比较简单的,按照提示做就好了。但安装好之后,默认启用 Windows 的 cmd.exe 作为命令行功能是比较弱的,可以启动后再运行 rxvt,但发现中文输入输出有问题。

首先,设置 cygwin 使用 rxvt 作为默认的 CLI,编辑 cygwin.bat(C:\cygwin\cygwin.bat)文件,最后文件是这样的:
@echo off

C:
chdir C:\cygwin\bin

set CYGWIN=codepage:oem tty binmode title
rxvt -e bash --login -i
主要看最后两行。

为支持中文,编辑 ~/.bashrc 如下:
export LESSCHARSET=latin1
alias less='/bin/less -r'
alias ls='/bin/ls -F --color=tty --show-control-chars'
export LC_ALL=zh_CN.GBK
export LC_CTYPE=zh_CN.GBK
export LANG=zh_CN.GBK
# export XMODIFIERS="@im=Chinput"
# stty cs8-istrip
# stty pass8
export OUTPUT_CHARSET="GBK"
编辑 ~/.inputrc 如下:
set meta-flag on
set input-meta on
set convert-meta off
set output-meta on
set completion-ignore-case on
此时,如果使用的是 cmd.exe 作为 CLI,则已经可以输入输出中文了,但如果是 rxvt,则还需要修改 ~/.Xdefaults,因为 rxvt 中文显示和字体有关:
! ~/.Xdefaults - X default resource settings 
Rxvt*loginShell: True
Rxvt*font: -*-courier-medium-r-*-*-16-140-*-75-*-*-*-*
Rxvt*boldfont: -*-courier-bold-r-*-*-16-140-*-75-*-*-*-*
! Rxvt*font: -*-nsimsun-medium-r-*-*-16-140-*-75-*-*-*-*
! Rxvt*boldfont: -*-nsimsun-bold-r-*-*-16-140-*-75-*-*-*-*
Rxvt*SaveLines: 2000
Rxvt*background: #000020
Rxvt*foreground: #ffffbf
目前我只发现 courier 和 nsimsun(新宋) 字体可用。

另外,如果安装的是 native 版本的 gvim,可以直接调用,前提是已经将 gvim 加入到了 Windows 的 %PATH% 环境变量中了。因为 Windows 文件名的原因,如果直接运行 gvim ~/.Xdefaults 是不行的,但可以运行 gvim .Xdefaults。

没有评论: