
前几天发现了一个好玩的网站, 它提供Google的搜索服务, 也许你会说这没什么, 随便哪里都有. 但这个网站可不一样, 它是纯命令行的搜索. 网页模拟成了终端, 而你需要输入相应的命令. 偶尔用用还是很有趣的.
$ sudo apt-get install dia
"// "
, 然后我就可以很方便地添加注释了. 可今天很神奇, 突然就从"// "
变成"/* */"
了, 这样很是不爽. 看了下Emacs的帮助文档, 发现无论是"// "
, 还是"/* */"
, 都是由两个变量来控制的. 一个叫做comment-start
, 另一个是comment-end
, 分别控制开头和结尾. 比如说"/* */"
这个, 它的comment-start
就是"/* "
, 而comment-end
则是" */"
. 所以只需要在我的配置文件的C Mode里面添加下面两行就行了:(setq comment-start "// ")
(setq comment-end "")
/*光标在中间那行, 当我输入完注释以后回车想输入下一行, 却发现Emacs不会自动跳到相应的位置并且添加那个星号, 在Vim里就可以. 难道Emacs不支持? 其实不是, 你不需要使用回车来换行, 当你想要输入下一行注释时, 按M-j就行了, 效果和Vim中是一样的, 呵呵~
* ...
*/
comment-column
. 这个变量的默认值是32, 每行注释都会从32列开始, 所以会很整齐了.
$ sudo apt-get install subversion然后强烈推荐一本SVN的教程: Version Control with Subversion, 这本书虽然有中译本, 但版本太老了, 还是讲1.4的 (现在SVN的版本是1.5.1), 所以还是看原版吧. 绝对是本好书, 光看已经由O'Reilly出版了就知道了. 还是要感谢下作者, 将这本书免费地放到网上 (其实这本书就是由SVN来管理的).
$ sudo vim /etc/inputrc在那个if判断后面添加就行了, 因为我用的是Emacs的键绑定, 最后重启就生效了, 使用C-o来遍历补全.
...
# some defaults / modifications for the emacs mode
$if mode=emacs
# traversing complementation
"\C-o": menu-complete
...
$ sudo apt-get install gnome-do使用Super+空格来呼唤出GNOME Do, Esc退出. 一定要记得去勾选适合自己的插件哦, 这样GNOME Do的威力才能更好地发挥出来呢. 下面是一些截图:
$ sudo apt-get install nautilus-open-terminal重启即可.
2010.11.22 10:20更新: 今天才发现我当初是没有弄清楚Vim寻找tags文件的方式, 现在看来, 只需要在源码根目录执行"ctags -R
", 然后每次都使用这一个tags文件即可. 因此下面的做法相当于画蛇添足, 现仅留作存档.
2010.11.22凌晨更新: 下面的脚本中由于find
用到了扩展的POSIX正则表达式, 因此请注意检查你系统中的find
是否支持, 比如BSD系统自带的find
就只支持标准的正则表达式.
昨天本来想看下xlockmore的源码的, 开始以为Vim + Tag List就差不多了, 后来发现不行的, 源码里面包含了一些include
文件中的类型定义啊, 函数定义啊这些的, 想去看下原型都不行.
ctags
, 在我正在查看的源文件的目录下生成了一个tags文件. 这下好了, 可以跳转查看了, 不过马上新的麻烦又来了. 我还想在这个新跳转的文件中继续跳转, 但由于它同刚才的不在同一个目录, 所以Vim找不到相应的tags文件. 真是麻烦, 看来必须在每一个目录下都生成一个tags文件才行, 不过我很懒, 不想手动进入每一个目录, 然后重复执行那行命令. 查了一会儿ctags
的man page, 没找到想要的功能, 又Google了一下, 还是没找到, 倒是找到了和我遇到相同麻烦的人, 呵呵~ 问了下joy, 貌似他也不是很清楚, 于是我就干脆写个脚本算了. 把这个脚本放在包含所有源码的根目录执行就行了.
#!/bin/bash if which ctags > /dev/null; then echo "Hey, I get it!" > /dev/null else echo "ctags is needed" exit 1 fi base_dir=`pwd` extension="\([cC]\|[cC][pP][pP]\|[hH]\)" cd "$base_dir" for dir in `find . -type d`; do cd "$dir" file=`find . -maxdepth 1 -regex ".*\.${extension}" -execdir echo 'found' \; -quit` if [ -n "$file" ]; then echo "$dir" ctags -R "$base_dir" fi cd "$base_dir" done exit 0顺便记下在Vim中通过tags文件跳转的命令:
g^] 跳转
^T 跳回
然后还有个cscope
, 可以用来搜索源码, 还没怎么用过.
P.S. xlockmore的源码看着真是费劲, n多的宏定义和typedef
, 害得我头都看晕了...
$ cat ~/.gtkrc-2.0
# Emacs-like Keybindings
include "/usr/share/themes/Emacs/gtk-2.0-key/gtkrc"
gtk-key-theme-name="Emacs"