SVN 技巧:GUI 版本比较和可执行属性

我曾经在《使用 kdiff3 进行 svn 版本比较》中介绍了为什么以及如何使用 kdiff3 或者 meld 等 GUI 比较工具进行 SVN 版本比较。但这样做有个小问题,就是如果设置了 GUI 工具作为比较工具,那么就没办法输出 diff 文件,而且每次都要关掉窗口才会出现下一个文件,就无法比较多个文件了。所以我觉得下面这种做法会更好一些:

$ more svndiff
#!/bin/bash
sed -i -e 's/^# diff-cmd.*$/diff-cmd=meld/' ~/.subversion/config
svn diff
sed -i -e 's/^diff-cmd.*$/# diff-cmd = meld/' ~/.subversion/config

其实就是用一个脚本 svndiff 来做 GUI 比较的工作。svndiff 执行时首先将 svn 配置文件中的比较工具改为 meld,然后进行比较,比较完后再将修改注释掉,这样就不会影响正常 svn diff 的功能。这样一来,svndiff 是 GUI diff,svn diff 就是命令行 diff。

设置文件可执行属性对 Windows 用户来说可能没什么用,可是对 Linux 用户来说用处就大了。没人希望每次一 update,就要重新对需要执行的脚本 chmod 一下。svn 修改文件可执行属性的命令太长了,我老记不住,所以放在这里做个笔记吧:

svn propset svn:executable ON filename

Vim 中文输入法插件 Vimim

有位朋友在 TopLanguage 讨论组里向我推荐了一款非常 cool 的 vim 输入法插件:vimim,您可以从 Vim 插件页下载 Vimim,演示程序和码表可以在 Vimim Googlepage下载。Vimim 作为一个 Vim 插件项目起始于 09 年一月份,可能知晓它的用户还比较少,所以我觉得有必要向大家推荐一下这款优秀的 Vim 插件。

作为中文用户,在 Vim 里输入中文往往是一件非常痛苦的事情,最别扭的地方在于使用中文输入法时进行 Vim 编辑模式之间切换比较麻烦,还容易误操作,这也是我一般不使用 Vim 编辑中文文档的原因。

简单地来说,这个插件使得你在 Vim 里直接输入中文(使用 Ctrl+\ 开启选词单而不是通常输入法使用的空格键)。当你不按 Ctrl+\ 时,你就是在输入英文字母,这样就避免了中英文输入法切换的问题。这个插件的使用方法和演示在 Demo 页展示得很清楚,这里我就不再赘述了。

不过在使用上我仍然面临着一个小问题,Vimim 目前提供的双拼码表是基于微软双拼的,而我习惯于智能 ABC 双拼,所以我在 Vimim 的讨论组里抱怨了一下:《希望双拼音节映射独立于码表》。

------------------------------ 我是分割线 ------------------------------

我的 BSP yo2.cn 服务器宕机从 09 年 5 月 12 日起延续了将近三天,期间可能导致部分用户遇到无法访问问题,请见谅。