这篇文章过时了,参见皈依Emacs,现在我对操作方式有较大调整。
Vim模拟
平心而论,Vim的modal editing确实比Emacs强,而Emacs默认的按键绑定设计不好,不适合使用,要让它适合做工作环境往往要改大量按键。“一千个读者心中有一千个哈姆雷特”,Emacs的配置也确实大相径庭。
对于sqrt(3);
,Visual Studio
会报告有歧义的重载函数调用,而gcc
却能把这个解释为对sqrt(double)
的调用。研究了一下gcc
的实现,发现sqrt
其实是《C++
Templates: The Complete
Guide》中提到的type function
,使用了名为SFINAE (substitution failure is not an error)
的技术。这里是给出一个使用该技术的sqrt
的简易实现:
xbindkeys
不支持emacs
风格的key sequence
,不过由于它可以调用guile
来支持scheme
的配置文件。xbindkeys
的tarball
里有一个配置文件,支持key sequence
的特殊形式:两个键的序列。
最近正好学了些scheme
,就好好折腾了一把,写了一份配置文件,可以支持任意长的key sequence
(当然太长的一般用不到)。
机缘巧合,写了两个用到Parsec
的Haskell
程序。一个是Untyped
lambda calculus,另一个是 po2db。adam8157
对神器Pandoc
大为赞赏,这也是Parsec
的应用。Parsec
也有不少其他语言的复刻版,不过不少语言都缺乏Haskell
自定义中缀操作符的功能,实现一个parser所写出来的代码可能会冗长很多。
用网页来看网络学堂的公告很费时间,就打算像 rss2email
那样,把消息制作成邮件。 用 Ruby
的 mechanize
来和网站交互,读取“课程公告”和“课程文件”中的消息, 把链接
sha1
后判断是否生成过提示邮件,没有则跟踪链接,用
w3m
输出成纯文本, 生成的邮件用 sendmail
投递。