Sucha's Blog ~ Archive for October, 2012

12年10月3日 周三 12:42

XP 下的硬链接工具 Junction

回到了家,三分钟就搭好了以 Emacs 为中心的工作平台、博客平台,得益于 yun.io 的文件系统层面云,还有我在 github 上的 emacs 配置文件,将基本的东 西下载下来后,几乎不需要什么配置,就可以开工了。

有了这些云,文档的内容毫无疑问是一致的,但是本地操作系统路径等等的问题才 是手头需要立即解决的。

目前我在 mac 以及 xp 下的 emacs 配置文件是一样的了,都是以以 $HOME 目 录为基础的路径,但是 yun.io 在这两个操作系统上的存放位置是不一样的,而且 往往也还有其他的配置文件等等需要分配额外的路径。

mac 下跟 linux 很像,也就是建立一个软链接或者硬链接就好了,xp 下也有工具, 就是 juntion,目前只能在 ntfs 格式的文件系统下建立硬链接。

话说 windows 的软连接这种方式不是在文件系统层面解决的东东,不晓得为啥放到 用户层来解决,不过这么多年来都这样了,也许就是 wintel 的传统了吧。

任何系统有关的东东,暂存在 CategoryLinux 下好了。

12年10月3日 周三 11:59

Emacs 的正则表达式替换

买了 kindle 4 之后,最喜欢的还是纯文本类的格式,6 寸的屏幕显示格式化后的 段落,也还是很方便的,不过即便是如此低的要求,有时还是得花费很多时间来处 理。

就比如昨下了一本 <Programmers At Work>(明显盗版),pdf 版本,转成 txt 后, 段落明显不对,访问式的文体,问答的内容都应该单独分段,可是转换后的文件却 没有。

一开始是想手工替换处理的,后来发现真的是太累了,不靠谱,还用上了 word,我 的 word 太不熟了;其他的纯文本处理工具,应该只有简单的段落拼接功能;想到 了使用正则表达式,不过 xp 下却不知道用什么工具好,想用 Lua,工具也不大, 可是下载完了之后才想到又要编程,比如打开关闭文件什么的,多么麻烦呀;于是 敲定用 emacs,家里的电脑,得重新下载。

虽然对 elisp 说不上生疏,但是一直都在逃避正则表达式,因为若非复杂的文本 处理,学这个东西太不讨好了。

这回硬着头皮上吧,先给出需要处理的文本段落的例子:

INTERVIEWER: xxx...SIMONYI: xxx...INTERVIEWER: xxx...SIMONYI: ...

如上,INTERVIEWER 和 SIMONYI 都要单独分段,手上已有的文本小说处理工具决 计搞不定。

Emacs 的处理过程为,先打开文件,然后 M-x replace-regexp,输入匹配的正则 表达式:

"\([A-Z]:\)"

替换成字符串:

"

\1"

处理后的文本例子是:

INTERVIEWER: xxx...

SIMONYI: xxx...

INTERVIEWER: xxx...

SIMONYI: ...

使用 replace-regexp,替换字符串含有换行符啥的,都是 plain text,单单为这 个问题,也花了不少时间。我是临时绑定一个 C-1 给 (newline),要不直接RET 就 eval 了,多不靠谱呀。

还有,替换字符串中的 "\1" 就是匹配到的字符串。

最后,POSIX、Lua、Emacs 中的正则表达式标准应该是都不一样的,所以,手边带 着工具书往前走比较靠谱。