星期六, 十二月 16, 2006

将windows文件专为unix格式

通常Unix中文本文件以linefeed (LF) 表示一行结束。而DOS(Windows)文件以一个carriage-return (CR) 和一个 linefeed (LF) 结束一行。因此在linux中要可用用flip将文件在不同文件格式之间转换。另一个命令dos2unix也可以。
$ find /the_paht -type f |xargs flip -u
flip可以的参数m可以将文件从DOS格式转换为UNIX格式。-t参数可以改变一个文件的时间戳。

星期二, 十二月 12, 2006

Emacs23在ubuntu下的安装

Emace23是Emacs的Unicode分支,无法Ubuntu下直接安装。需要从CVS下载。
$ sudo apt-get install ssh texinfo
$ sudo apt-get install libncurses5-dev
$ export CVS_RSH="ssh"
$ cvs -z3 -d:pserver:anonymous@cvs.savannah.gnu.org:/sources/emacs co -r emacs-unicode-2 emacs
然后configure,使其可以使用xft字体。
$./configure --prefix=/usr --enable-font-backend --with-gtk --with-xft --with-xpm --with-jpeg --with-tiff --with-png --x-includes=/usr/include/X11 --x-libraries=/usr/lib/X11
如果提示缺少gtk的开发文件,可以安装libgtk2.0-dev,再继续执行上面的命令。
make bootstrap
make info
sudo make install

可以这样来运行Emacs
$ emacs --enable-font-backend --font "Bitstream Vera Sans Mono-10"
或者在用户主目录下的.Xresources文件下加上:
Emacs.FontBackend: xft
Emacs.font: Bitstream Vera Sans Mono-8
在.bashrc里加入
alias emacs="emacs --enable-font-backend"
要用--enable-font-backend调用的原因是Emacs总是在检测Xresources之前调用字体相关的函数。运行:
$ xrdb -merge .Xresources
$ bash

需要说明的是,保留--enable-font-backend参数的原因是开发者对一些遗留的字体处理代码的移除还没有完成。很多用户也有意见,为什么不将--enable-font-backend作为缺省的参数。Kenichi Handa说,等他移除了那部分代码,这个参数就会消失的。这些,会写在Readme.Unicode里面。(See Here)

完成了以上的工作,Emacs可以很好的显示英文了。不过中文时候还有问题。Emacs好像随便显示了一个中文字体。这样在
.Xresources文件中改变一下字体。
Emacs.font: Monospace-10
在.emacs中加入
(set-fontset-font (frame-parameter nil 'font)
'han '("WenQuanYi Bitmap Song" . "unicode-bmp")
这里WenQuanYi Bitmap Song可以改为simsun或者Microsoft YaHei(如果你安装了这些字体的话)。要注意的是,写在xft相关的fontconfig文件中对于一些大小的字体的关闭反锯齿的功能似乎无效(See Here)。这个也许是现在这个Emacs23版本的bug。很多事情值得期待,慢慢等吧。