Monday, November 10, 2008

参加三叶草Linux方向考核的一些总结

这标题好像有点正式, 其实也就是上个星期的事情, joy给我们出了几道题, 做为进入三叶草的一个考核. 虽然题不多, 而且难度也不是很大, 不过还是有一些值得写下来的东西.

首先了解了indent这个软件. 以前在桃源上看过joy写的介绍, 没用过, 这次题上有, 就去下来用了用. 只需要简单地配置一下就可以使用了, 不过只能用来缩进C语言, 这个范围有点窄了. 但某些地方还是要比我自己配置的在Vim和Emacs里的缩进要先进一点, 以后可以这两种方法结合着用. 配置参考了joy写的, 自己查了点也添了进去:
$ cat ~/.indent.pro
-bl        // Put braces on line after if, etc.
-bli0      // Indent braces n spacs.
-bls       // Put braces on the line after struct declaration lines.
-c32       // Put comments to the right of code in column n.
-cd32      // Put comments to the right of declarations in column n.
-cp32      // Put comments to the right of #else and #endif statements in column n.
-i4        // Set indentation level to n spaces.
-kr        // Use Kernighan & Ritchie coding style.
-nce       // Do not cuddle } and else.

然后根据joy的题的要求写了一个将Window$下的文本文件转换为Linux下的格式的脚本. 功能很简单, 不过有时候也挺实用的, 现在还只能处理单个文件, 准备以后加入批处理功能.

最后这个和这次的题没有多大关系, 只是因为上次看joy演示的时候很好奇那个在Emacs中自动添加文件头的东西. 于是先去网上找了下, 找到一个叫做template的插件. 虽然不是joy那个, 不过发现这个插件的好处就是可以自动帮我在tex文件的开头插入导言区, 这下可省事多了, 呵呵~ 然后问了joy, 知道了那个插件叫做auto-header.el. 最开始还下了一个错误的版本, 导致Emacs启动错误, 推荐大家在这里下载. 这个的配置参考猫猫的配置.
$ cat ~/.emacs
;; template
(require 'template)
(template-initialize)

;; auto-header.el
(require 'auto-header)
(setq header-full-name "Dreamseeker"
      header-email-address "gaochangjian<at>gmail<dot>com"
      header-copyright-notice "Copyleft (c) INF, Dreamseeker"
      header-update-on-save '(filename modified counter copyright)
      header-field-list '(filename
                          blank
                          description
                          blank
                          author
                          created
                          blank
                          modified_by
                          modified
                          blank
                          status
                          update
                          blank
                          copyright))
;; auto update the number of count
(global-set-key (kbd "s-h") (lambda ()
                              (interactive)
                              (if (header-exists-p)
                                  (header-update-count)
                                (header-make t))))

No comments:

Post a Comment