The leading textbook in Artificial Intelligence. Used in over 1000 universities in 91 countries (over 90% market share) and the 85th most cited publication on Citeseer.
学习再学习,多少大秘密
繁芜纷飞,杂七杂八
A branch of computer science that studies how to endow computers with capabilities of human intelligence. For example, speech recognition is a problem being worked on by AI scientists.
后知后觉:cdlatex
以前一直用 emacs+auctex 写 tex 文档,基本上比较满意了。部分编译,数学公
式预览,check 具体检查语法错误,再加上自己写一个小模板,基本的编辑都用上
了,也觉得比较顺手。只是有时候输入数学公式的时候比较郁闷,会少了 $ 符号
这样的。今天网上乱逛的时候,发现了一个叫 cdlatex 的东西,看了一下,虽然
有些功能和 auctex 重复,但是也别有一番风味。
cdlatex 主页虽然很久没有更新了,作者说是自己实现一些 auctex 的功能是因为自己
不知道 auctex。下载稍微试了一下,发现在很多方面,比 auctex 显得方便。
小修改了一下 po-mode 的配置
之前
小修改了一下 po-mode, 使用了 . 来识别是否需要真正的使用 \n 来断行,
但是今天被郁闷了,翻译 kile.po 时遇到了几个 abc.def 的文件名,照样翻译了
之后,点被替换成 \n 了。于是发现用其他符号代替回车不是一个好办法,最好的
还是使用 \n,不过一个问题是,emacs 替换时会将 \n 替换成 \\n,这是基于 \
的转义,平时在一行的中间也是可以的,但是在一行的行尾的话就会有问题。
继续查看了一下,突然想到进行二次替换,也就是将行尾的 \\n 重新替换成 \n,
测试写了一下,基本正常,比 . 的办法是稍微漂亮一些了。
同时一个问题是在编辑的时候,下面的窗口,也就是编辑窗口,默认是没有打开
auto-fill-mode 的,这样,编辑的时候断行就不怎么方便,看了下源码,找到了
一个 hook, 添加了下,好了。
不能忍了,卸载了 ssmtp
不知怎么搞的,配置得好好的 ssmtp 就不能用了,报什么
smtpmail-smtp-server' not defined 的错误,一怒之下删除了。
使用 emacs 自己的 sendmail 看了。
- (setq smtpmail-starttls-credentials '(("smtp.gmail.com" 587 nil nil))
- smtpmail-smtp-server "smtp.gmail.com"
- smtpmail-default-smtp-server "smtp.gmail.com"
- send-mail-function 'smtpmail-send-it
- message-send-mail-function 'smtpmail-send-it
- smtpmail-smtp-service 587
- smtpmail-auth-credentials '(("smtp.gmail.com"
- 587
- "username"
- "passwd")))
测试了一下,这不照样用么,看来 emacs 的更新还是很大的,以前这样的配置是
不能用的。
sigh: 之前的哦 fetchmail + procmail +Emacs/gnus+postfix 的组合,再之后 getmail +Emacs/gnus+ssmtp 的组合,再然后是 Emacs/gnus(nnimap)+ssmtp ,兜了一个大圈子,还是回到 emacs 本身了...
emacs po-mode 断行的问题
emacs 的 po-mode 非常好用,而且几乎不用任何配置,快捷键很多而且很简单。
比如 n 跳到下一条,t 跳到下一条翻译的,u 跳到下一条没有翻译的,f 跳到下
一条标记 fuzzy 的, backspace 增加 fuzzy 标记, TAB 去除,等等...
不过也有个比较郁闷的地方,就是多行的文本,在 emacs 中配合 autofill-mode
自动换行之后,会在每一行后面多出一个回车符“\n”,这个是不需要的,并且以后
修改的时候比较麻烦。因为在 po-mode 中是不能直接随心所欲的编辑文本正文的。
所以只有文本模式下面编辑。再处理一次简直是不可原谅的。所以就自己想修改一
下,查了一下,该死的竟然没有文档,于是就只有修改源码了。。。
试着配置了一下 emacs/gnus 的 imap
以前一直不想配,所以信件被堆到了本地,昨天晚上检查了下,发现那个信件目录有几百 M
之大了,想着由于订阅了些 mailing list 而就这样任这个目录疯长,那还是有些郁闷的。
虽然 gmail 的 imap 有些小 bug, 好在我所订阅的东西里面采用这个解码的不多,所以试
一试还是值得的,想下,可以把这样的信件转发到另一个信箱,然后再使用 imap 登录上
去,嘿嘿,这样乱码问题就解决了。。
记录下 emacs 发布 blog 的配置
很简单,首先下载 weblogger 这个扩展,将下载回来的 weblogger.el 和 xml-rpc.el 放到 load-path 能够找到的地方,然后加载
- (require 'weblogger)
在 emacs 中,使用
- M-x weblogger-setup-weblog
来配置一个 blog, 比如我的这个 blog,
输入 http://zhan.ubuntu.org.cn/xmlrpc 后面的就自动了,
然后 输入
- M-x weblogger-start-entry
就可以开始写你的 blog 了
写完了就 使用
- M-x weblogger-publish-entry
来进行发布。
看看源码文件,其实里面有很多的快捷键的,使用起来估计会方便得多。
gnus 中文新闻组的垃圾问题
主要是 cn.bbs.comp.linux 这个组里面,垃圾很多,而且基本上就是一句话,还可能起个侮辱中国人的标题,看起来非常讨厌。
不过很棒的是,gnus 有打分的功能,而且这样的垃圾文件都是交叉 post 到几个cn.*的组上的,因此可以将其给一个超级的低分,就可以不显示出来了,比较不错。
因此在 SCORE 文件中增加一个规则,过滤 xref 部分
(("xref"
("cn\\..* cn\\..*" -1000 nil r))
这样,凡是交叉post 到两个 cn.* 组的都被给了 -1000 分。基本上就可以保证不被显示出来了。
其他有用的请看
auctex 部分编译的中文处理。
最近才发现,auctex 的 C-c C-r 编译一个 region 的时候,对于中文不能显示,看 _region_.tex 的代码,发现是它抛弃了CJK 的相关声明包。这也怪不得别人... 人家用 英文的自然没有这么多的问题...
搜索了一把,看到了水木上面的一个帖子,解决了这个问题,这里转载一下:
c-c c-r编译某环境时,往往要手动添加_region_.tex的\begin{CJK}{song}...很麻烦,
想了个办法修改TeX-region-Create的实现,由于TeX-region-Create函数忽略
\begin{document}前面的宏,定义变量手动添加之,代码如下:
- (defvar CJK-buffer-head "\\begin{CJK}{GBK}{song}")
- (defvar CJK-buffer-end "\\end{CJK}")(defun cjk-after-document ()
- (interactive)
- (setq CJK-buffer-head "\\begin{CJK}{GBK}{song}")
- (setq CJk-buffer-end "\\end{CJK}")
- )(defun cjk-before-document ()
- (interactive)
- (setq CJK-buffer-head "")
- (setq CJK-buffer-end "\\end{CJK}")
- )
然后,看TeX-region-Create函数在tex-buf.el中:
- (insert "\\message{ !name(" master-name ")}"
- header
- CJK-buffer-head ;;我的修改
- TeX-region-extra "\n"
- "\n\\message{ !name(" original ") !offset(")
- (insert (int-to-string (- offset
- (1+ (TeX-current-offset))))
- ") }\n"
- region
- "\n\\message{ !name(" master-name ") !offset(")
- (insert (int-to-string (- trailer-offset
- (1+ (TeX-current-offset))))
- ") }\n" CJK-buffer-end "\n" ;;我的修改
- trailer)
- (run-hooks 'TeX-region-hook)
- (if (string-equal (buffer-string) original-content)
- (set-buffer-modified-p nil)
- (save-buffer 0)))))
如果\begin{CJK}在\begin{document}之后,则区域编译前调用cjk-after-document,反之调
用cjk-before-document以正确设定CJK-buffer-head和CJK-buffer-end
测试了一下,确实成功了。
emacs 的 blogmax 插件
[
心情: Cool ]
drazet 推荐的,看了一下,是自己维护一个 blog 的,适合自己提供有空间的。将你的编辑变成 html 文件然后发布。
可惜的是不支持 评论等等的(这个没有验证过,也许是设置不够,看到作者的另一个 blog 有这个功能的..)。不过 生成 index, 转换 html 等等还是很方便的,不过不能挂评论的话也和 emacs-wiki/muse 这些的差不多了。哪个作者说得牛哄哄的..
| 引用: |
| If you don't use Emacs, but you do a blog, it might be worth your while to learn Emacs just so you can use BlogMax. |
主页在这里: http://billstclair.com/blogmax/index.html 这个页面本身也是用这个写的。
emacs 和 xdvi 的反向查询
[
心情: Amused ]
今太无聊,就到 wiki 上面翻译文章玩,遇到了正在使用的 JabRef 和 LaTeX 的两篇,感兴趣就翻了,看到了一个感兴趣的东西,反向查询,之前对这个略有耳闻,但是没有怎么关注,今天看到了就测试了一下,确实不错。
具体的可以看这里 http://wiki.ubuntu.org.cn/UbuntuHelp:LaTeX/zh 值得说的是 Texlive2005 的 iso 那个包含了 srcltx 所以只要设置 emacs 就可以了。
说到这里,还要说说 JabRef 这个家伙
http://wiki.ubuntu.org.cn/UbuntuHelp:JabRef/zh
能够使用 citeseer 的数据库,也可以很方便的管理 bibtex 格式的引用文献,本来我是很希望使用它在 emacs+auctex 中插入的,可是要用什么 gnuserv 的鬼东西,在我的 emacs23 中测试了一下,没成功,就搁置了,用 auctex 中的 reftex 模式还算凑活,不过据说 JabRef 和 lyx, kile, 以及 windows 下面的 winedit 的集成还不错。
恩,看到这篇文章的朋友如果也看到了文中的两个 url 的东西,帮忙纠错哈..
Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.