从vim转到了emacs,大家知道:emacs频繁使用control键,而普通键盘的control键位于键盘一角,按起来颇不顺手。HHKB又买不起,为了预防关节炎、节约生命,改键!
BTW:不得不承认,HHKB的主键区排列是最合理的,其他键盘为何不跟进:-<。

阅读全文 »

emacs内嵌中文输入法,但缺省的输入法是全拼,并且不带词库。给emacs装上好用的小鹤双拼输入法,使其在ssh环境下也能使用累积的词库,非常必要。

阅读全文 »

一个同事问我,希望能把一个pdf文件分割成单独的页面,搜索了一下,到处都是在线切割的,不好用,无意中发现原来linux就有这个工具!

阅读全文 »

汉诺塔问题是一个经典的递归问题。汉诺塔(Hanoi Tower),又称河内塔,源于印度一个古老传说。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,任何时候,在小圆盘上都不能放大圆盘,且在三根柱子之间一次只能移动一个圆盘。问应该如何操作?

阅读全文 »

《haskell趣学指南》这本书里有一个快速排序的例子, 如下:

1
2
3
4
5
6
quicksort :: (Ord a) => [a] -> [a]
quicksort [] = []
quicksort (x:xs) =
let smallerSorted = quicksort [a | a <- xs, a <= x]
biggerSorted = quicksort [a | a <- xs, a > x]
in smallerSorted ++ [x] ++ biggerSorted

太简练了!受其启发,写了一个选择排序函数,如下:

阅读全文 »

我在编写自己的Latex编译脚本la.sh的时候,取参数文件名的时候,这样处理:

1
2
3
4
5
6
7
8
# 取命令行参数
fullname=$1
# 取目录名
dirname=`dirname $fullname`
# 取文件名
filename=`basename $fullname`
# 取文件扩展名
extname=${fullname##*.}

其中最后一行取文件扩展名,当时是复制粘贴的,只知其然而不知其所以然。直到我找到这篇文章:

阅读全文 »
0%