最近公司cvs server搬家,不过手上有些活还没有check in,这样,除了改变CVSROOT环境变量外,还要做些额外的活改变本地的work space。
其实也不难,就是把所有CVS目录下的Root文件里的字符串替换成新的cvs root。为了方便操作,一个同事写了一段Perl脚本,大家只要在work space的根目录运行一下就可以了。但我始终觉得,无论是Perl或者sed,用来修改文件内容总是有点别扭,要做很多额外的工作,比如打开文件,创建输出文件,然后覆盖原文件,为了以防万一,还要留个备份。
用emacs就方便多了,这些问题全都由emacs自动解决了,因为emacs先把文件读到buffer里,修改之前还会自动生成备份文件,修改完成后执行一下(save-buffer)就可以了,唯一要做的工作就是写一个字符串替换操作,而这又可以通过–eval选项直接写在命令行上,所以又省去了写脚本的过程,非常完美。
当然,这需要学习一点Emacs Lisp。