Emacs统计字数的方法
文章目录
Emacs自身好像并没有提供一个统计字数的方法,因此,我们需要自己使用一些扩展或是elisp函数来实现。
- 利用外部程序来计算
把下面的代码添加到Emacs配置文件里:
(defun word-count nil “Count words in buffer” (interactive)
(shell-command-on-region (point-min) (point-max) “wc -w”))
于是,在Emacs里就能用M-x word-count来调用wc程序计算字数。这个方法比较简单,当然,缺点也很明显,即你的shell要能调用wc这个程序。如果是在Windows下,你就得装个Cygwin。如果你有其它的统计字数的程序,可以进行适当地替换。
这个方法统计字数的结果,和外部应用程序有关。
- 用word-count.el扩展来统计字数
word-count.el是Emacs一个比较好的统计字数的扩展,标记好开头后,直接跳到你要统计部分的结尾,下方会显示形如wc111/22/1这样的内容,分别表示有111个字符、有22个单词、有1行(空行不计算在内)。
使用方法:
(1). M-+ (M-x word-count-mode) 启动word-count模式,使用了该命令之后,马上会做一个初始标记,随着光标的移动,统计光标当前位置和初始标记之间的字数。再使用一次这个命令关闭word-count模式。
(2). M-[space] (M-x word-count-set-area) 设置统计字数的区间。
(3). M-x word-count-set-region 设置统计字数的区间或段落。
(4). M-x word-count-set-marker 设置统计字数的初始标记位置。这个命令,可以重新设置初始标记的位置,以便于你在新的位置开始统计数据。
这个方法好像不能完美地统计出中文字数,它是以空格来进行英文字符的断词的。
- 用wc.el扩展来统计字数
只要把wc.el扩展扔到你的Emacs目录下,再在.emacs文件里添加如下语句即可激活该扩展:
(load “wc”)
这个扩展提供了几个命令用来统计字数:
M-x wc-buffer:统计全文字数;
M-x wc-region:统计选定区域的字数;
M-x wc-dwin:这个命令是前两个命令的综合,如果没有选定区域,则统计全文的字数;如果有选定区域,则统计该区域的字数。
这个方法在统计中文字数上也有着同样不准确的问题。
这个网页提供了几个统计字数的函数,把它们放到.emacs文件里,就可以使用了。不过,这个方法好像在统计中文字数上有问题,没有仔细验证。
上面的几个方法,对于统计英文单词,都没有太大的问题,但对于中文字数的统计,基本上都无能为力。等我有空的时候,再来改进一把。
文章作者 cookwhy
上次更新 2009-08-10