Wednesday 21 March 2007

Beginer's Emacs

emacs也用了很久了. 但感觉才刚刚入门. 并不是因为我笨. 是因为现有的emacs入门不适合我.

但是我在emacs里看了Emacs Lisp Intro的Info版, 就霍然开朗的入了门.

因此我想Emacs最好的入门道路(起码对我而言), 就是先学emacs的启动, 之后进emacs的看Info, 找到Emacs Lisp Intro来就是了.

但是Emacs Lisp Intro可能没装. 那就到http://www.gnu.org/software/emacs/emacs-lisp-intro/下载. 拷贝到info的目录. 然后用install-info 安装. 不安装也可以用info看, 但不显示在emacs info的Top页面. 翻看起来多少有些不便.

Tuesday 13 March 2007

getclip and putclip in cygwin

(defun clip-get ()
"Get contents from clipboard and paste it to current buffer."
(interactive)
(message
"Paste from clipboard")
(call-process "getclip" nil t) )
(defun clip-put ()
"Put current buffer contents to clipboard."
(interactive)
(call-process-region (point-min) (point-max) "putclip" nil 0)
(message "Paste to clipboard"))

(defun clip-reform ()
"Reform contents in clipboard"
(interactive)
(shell-command "getclip|putclip")
(message "Reform Clipboard"))

(global-set-key "\C-cg" 'clip-get)
(global-set-key "\C-cp" 'clip-put)
(global-set-key "\C-cr" 'clip-reform)

Friday 9 March 2007

Emacs Org Mode Intro

* 入门
也是刚刚用emacs的Org-Mode. 但一下子就喜欢上了. 在这里作一个简单的介绍,
希望各位也能喜欢.
** 安装
Org-Mode在emacs 22里默认就有. 如果用的是emacs 21, 可以到[[http://staff.science.uva.nl/~dominik/Tools/org/][
Org-ModeHomepage]]下载装上.

建议直接使用emacs 22. 就是为了Org-Mode(和sdcv-mode), 不惜花了好几个
小时的编译时间, 转到emacs 22下的. 自己觉得还是值得的.

** 配置
现在假设大家的Org Mode都已经装上. 在~/.emacs里加入下列几行来配置一
下:

(add-to-list 'auto-mode-alist '("\\.org$" . org-mode))
(setq org-hide-leading-stars t)
(setq org-cycle-include-plain-lists t)

把.org的文件和Org-Mode关联起来. 后两行会在下节解释.
* 组织文档
Org-Mode说自己比较适合记笔记, 维护ToDo列表, 做项目计划等. 个人觉得
写文档也是不错的. 比如现在我的大部分文档都是这么写的.

Org-Mode能认得的文档结构有两种, 标题和列表. 其他的就理解为正文了.
** 标题
Org-Mode的标题用`*'标识. 注意作为标题`*'需要在最前面.

一个`*'标识一级标题, 两个二级, 以此类推.

标题太深就满目标题了. 这时可以设置(setq org-hide-leading-stars t)
把前面的`*'隐藏起来, 只留一个. 看起来清爽写. 这个在Org-Mode里叫
`Clean View'.

标题可以用Tab键折叠起来. 也可以用Tab展开. Org-Mode这种根据上下文判
断按键意图的办法很好. 用起来简单, 不必记其他的命令.

** 列表
列表有两种, 一种是数字的, 比如:
1. xxx xxx
aaa
2. xxx xxx

还有以`-',`+', `*'打头的, 比如:
- xxx xxx
aaa
- xxx xxx

两者可以结合着用.

默认列表不能用TAB键折叠(像标题那样). 如果想用TAB键折叠, 需配置以下
变量:

(setq org-cycle-include-plain-lists t)
** 局部编辑
标题多了, 挪来挪去不是很方便, 可以用局部编辑的功能, 只编辑一部分这
样清爽些.
`C-c C-x b', 会开另一个buffer(emacs叫indirect buffer), `C-x o'换过
去, `C-x 1'全窗口, 编辑起来很舒服. 保存还是保存到原来的文件.
** 创建标题
除了用`*'来创建标题外, 还可以用`M-'(Alt + 回车键)创建标题.
这样会创建和上一个标题同级的标题.

还可以用ESC + 左箭头使标题左移, ESC + 右箭头右移. 当然增减`*'也能
达到一样的效果.

Org-Mode的键设定很简便. 比如Ctrl + 回车可以创建一个新的段落.
** 标题间的移动
文档一大, 翻看起来就比较麻烦. 标题间的移动是这个变得简单了.

到同级上一个标题: `C-c C-f'
到同级下一个标题: `C-c C-b'
到上级标题: `C-c C-u'

Overview快照: `C-c C-j'. 这个也很实用. 会另开一个视图, 显示文档结
构, 用上下箭头可以选编辑哪一部分.

* 链接
Org-Mode的链接很好玩. 链接可以是类似超级链接的东西, 也可以是别的.
** 链接的格式

[[target][链接描述]]
链接的描述是可选的; 如果没有链接描述, 链接本身就作为描述. 这听起来
还比较的合理. 和HTML里的超级链接是一致的, 比如:
http://www.example.com
用Org-Mode的表达就是:
[[http://www.example.com]]
** 链接的形式
链接不光是http, 有多种形式. 我最喜欢的是`shell'. 比如:
[[shell:madplay *.mp3&][madplay *.mp3]]
访问链接就是播放了.
还有就是`file'. 可以用来连到另一篇文档.
也可以连到本文档的某个地方. 有点类似搜索的功能. 一般不用.
** 访问链接
用`C-c C-o'访问链接. 如果链接是超级链接, 就直接用emacs配置的浏览器
连了. 如果是文件, 就用emacs打开.
** 编辑链接
链接写好后Org-Mode就把`target'隐藏起来, 把链接描述加亮放在那. 看着
很整洁. 编辑的时候开始会糊涂一下. 编辑用`C-c C-l'. 下面会依次提示
改链接target和描述. 这么改还不那么糊涂.

* 制表
一般的文档只要标题, 正文, 列表, 链接和表格就足够了.前4项前面已经讲
过. 下面说一下制表.
** 创建表格
用`C-c |'来创建表格. 按下`C-c |'后, 会提示:
Table size Columns x Rows [e.g. 5x2]:
直接回车会创建一个5x2的表格:

| | | | | |
|---+---+---+---+---|
| | | | | |

如果需要别的可以按需输入.
** 表格的整理
在表格里, TAB键的语义是切换到下一个单元格. TAB还有整理表格格式的作
用, 比如表格乱得像下面这样:

| 月份 | 工资 | 支出 |
|---+---+---|
| | | |

按一下TAB, 就可以整理好:

| 月份 | 工资 | 支出 |
|------+------+------|
| | | |

当然如果你用TAB切换下一个单元格的话, 那个表格也不可能乱成那样. 随
时会整理.

我比较喜欢表格的自动整理功能, 因此就不介绍如何把这个功能禁掉了.
** 电子表格
表格可以进行计算. 可以计算的表格就叫电子表格.
**** 加法
我们来算一个加法. 如下表:

| 季度 | 收入 |
|------+------|
| 1 | 100 |
| 2 | 100 |
| 3 | 100 |
| 4 | 100 |
| 总和 | |

总和是多少呢? 可以在cell(2,6)按`C-c +'来算一下, 计算的结果用`C-y'
可以插入到相应的地方.
**** 更复杂的计算
上面加法很好用. 而且对我来说也足够用了. 有复杂计算要求的人可以接着
看. 和我一样的人可以就此打住了.

Org-Mode的电子表格计算使用emacs calc包. `calc'包理论上什么都能算
的. 不过我们这里只算一个乘法, C = A x B.

创建表格:
| A | B | C |
|----+----+---|
| 12 | 13 | |
| 13 | 14 | |
| 14 | 9 | |
| 19 | 20 | |
#+TBLFM: $3=$1*$2
在表格下写一行:
#+TBLFM: $3=$1*$2
注意顶格写.

把光标放到表格上, 按`C-u C-c *', 表格计算就会启动.

Tuesday 6 March 2007

Ask Questions

问问题是收费的:) 5~200美元不等.

http://uclue.com/

有些问题是很值的, 比如nancy问怎么找到一份适合自己的工作. 她标价60美元. 在得到答案后她又给了研究人员10美元的小费. 在她而言, 70美元找个合适的工作也是很值的. Nancy的问题在: http://uclue.com/?xq=64

uclue.com是Google Answer的研究人员办的.

还有一个问数学是不是科学的问题. 这么大的题目只付20美元. 有些难为Researcher了.
http://uclue.com/?xq=40

Monday 5 March 2007

emacs org mode is great

发现emacs的org mode很好用. 我用它记录mp3的一些信息.
* 简介
郑钧改编自Coldboy的[[file:../coldboy/yellow.org][Yellow]].
* 歌词

我想知道
流行能飞多久...

* 播放
[[shell:madplay 流星.mp3&][madplay 流星.mp3]]

我最喜欢的是播放, 光标放到link上C-c C-o就播放了.

Thursday 1 March 2007

sdcv在cygwin上的安装

可是折腾了不少的时间, 最终也算是大功告成:)
下面列一下编译时遇到的问题.

** mmap检测不到
就是MMAP在cygwin 上检测不到. 可能是AC_FUNC_MMAP的问题. 用
AC_CHECK_FUNCS(mmap)换掉, autoconf, ./configure, 然后make就可以了.
这个错误的表现是mapfile.hpp编译时出错. 错误的原因在这里.
** ar的问题
ar可能有问题. 基本是把ar跳过了, 直接用g++把丫的写成了exe:
g++ -g -O2 -o sdcv.exe sdcv.o getopt.o getopt1.o libwrapper.o
readline.o utils.o lib/*.o -lglib-2.0 -lintl -liconv -lreadline
-lz

有些粗暴, 但得到了所要的. :)