Chinaunix首页 | 论坛 | 博客
  • 博客访问: 478157
  • 博文数量: 115
  • 博客积分: 3777
  • 博客等级: 中校
  • 技术积分: 1070
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-07 09:20
文章分类

全部博文(115)

文章存档

2015年(1)

2013年(3)

2012年(26)

2011年(30)

2010年(34)

2009年(21)

我的朋友

分类: LINUX

2011-11-03 21:02:43

Linux 技巧:活用 Emacs 的单词拼写检查功能

林 绪虹, 软件工程师, 西艾(广州)软件开发有限公司
林 绪虹,有着 5 年开发经验并有着 7 年 Emacs 使用经验,过去的 7 年时间里,他利用 Emacs 进行写文档、个人知识管理以及基本的编程工作,Emacs 使他能高效地完成他的工作。他拥有机械电子工程专业硕士学位,技术兴趣广泛并喜欢技术写作,并拥有自己的技术博客。

简介: 本文简单介绍一下在 Emacs 里实现单词拼写检查的原理,详细介绍了基于 Aspell 的 flyspell 的基本使用方法,详细说明 flyspell 是如何通过使用 Aspell 来为 Emacs 提供单词拼写检查的功能。

发布日期: 2010 年 5 月 20 日
级别: 初级
访问情况 : 2914 次浏览
评论: 


如果经常要用 Emacs 来写英文文章和邮件(例如 使用 Gnus 来上新闻组及收发邮件),作为一个文本编辑器,那么一个英文单词的拼写检查工具就必不可少了。幸运的是,Emacs 提供了 来对拼写作出检查。

flyspell 只是一个 Emacs 的前端,需要配合其它拼写检查程序如 、 或是 来工作,即 flyspell 模式提供了桥接 Emacs 与其它拼写检查程序的管道。

推荐使用 作为拼写检查程序,不推荐使用 Ispell,因为它太老了。本文就简单介绍一下基于 Aspell 的 flyspell 的基本使用方法,看看 flyspell 是如何通过使用 Aspell 来为 Emacs 提供单词拼写检查的功能。

不论是在 Linux 下或是 Windows 下,安装 Aspell 都需要安装 Aspell 本身以及指定语言的词典。

在 Linux 下安装 ,非常简单,下面几个命令就足够了:

1) 安装 Aspell

./configure && make
make install

2) 如果 Aspell 已经正确安装好了,我们就可以安装 了:

./configure
make
make install

顺利安装后就可以使用了。

在 Windows 下安装 Aspell,推荐使用二进制版本进行安装,主要步骤有两步:

1) 下载 并安装;

2) 再安装你需要的词典,Aspell 提供了大概有二十几种语言的词典,下载你需要的词典并安装到你的 Aspell 的安装目录,词典就会被解压到相应的位置。

如果需要在 Emacs 里使用 Aspell 进行拼写检查,我们仍然需要进行适当的设置。

把下面这一行添加到 .emacs 文件,让 flyspell 模式使用你安装好的 Aspell 程序来进行语法检查:

(setq-default ispell-program-name "aspell")

重启 Emacs 后,我们就可以用 M-x flyspell-mode 进行语法检查了。

我们还可以进一步让某些模式自动启用语法检查功能。例如,如果我需要让所有的 text 模式自动启用语法检查功能,可以把下面这行添加到 .emacs 文件,这样当你以 text 模式打开一个文件的时候,就会自动启用语法检查功能了。

(setq text-mode-hook '(lambda()
(flyspell-mode t)
))

不过从速度角度考虑,不推荐这样使用。

现在,我们就可以用 M-x flyspell-mode 来启动 ispell 的拼写检查功能了。

注意:如果你在用命令 M-x flyspell-mode 启动拼写检查时,Emacs 提示如下错误:

Starting new Ispell process [default] ...
Enabling Flyspell mode gave an error

则很有可能是你第一步里的词典文件没有正确安装。

如果你觉得你正确配置了 Flyspell 但却仍然无法使用它,这时可能需要重启一下你的电脑。

flyspell 模式的用法,在 里有着详细的叙述。在这里,并不推荐 on the fly 的使用方法,因为这样很有可能会让你的 Emacs 运行得非常卡( Emacs 和外部程序的通信与数据交换总是会浪费大量的时间)。

最好的使用方法是,平时不开 flyspell,等你写完了文章需要语法检查一下的时候,把这个 region mark 起来,然后使用命令 M-x ispell-region 就可以查出当前 region 有什么错误。

当 然,如果你要对当前文章整篇进行检查,你可以直接用命令 M-x ispell-buffer 来对当前文章进行人机交互的单词拼写检查 ( interactive spell checking )。运行这两个命令后,flyspell 如果检查到它认为有拼写错误的单词,就会提示你进行核对,常用的命令如表 1 所示。



命令 解释
digit(数字) 屏幕的一半会显示出可以替换的正确单词,并用数字编号,输入这个数字编号就可以选择提示单词,并且用来替换当前错误拼写的单词。
跳过当前单词的拼写检查,承认其错误,但是在这里并不改正。
r new 用一个新输入的单词替换当前拼写错误的单词
R new 用一个新输入的单词替换当前拼写错误的单词,并且 flyspell 会提示是否替换文章中其它地方出现的类似拼写错误。
a 在当前编辑区域里,把当前提示错误的拼写当作正确的拼写。
A 在当前的 buffer 里,把当前提示错误的拼写当作正确的拼写。
i 把当前的单词插入到你的私人字典文件里,这样以后 Aspell 或 Ispell 或 Hunspell 就会把它当作正确的单词来对待了。
m 与 i 命令的操作相同,但是我们可以提供更多的补充信息
u 插入当前单词的小写形式到字典里。
l word 在词典里查找与该单词匹配的单词,这些单词会成为新的候选单词,我们可以通过数字来选择它们中的其中一个作为替换。可以用 * 号来作为通配符。
C-g
X
退出交互式的拼写检查操作,鼠标停留在当前被检查的单词上,可以用命令 C-u M-$ 来重新进行单词拼写检查。
x 退出单词拼写检查并把光标返回到拼写检查开始前的位置。
q 退出交互式拼写检查,并且结束 Aspell/Ispell/Hunspell 等子进程。
? 显示帮助信息

flyspell 的词典,并没有太多的计算机词汇,对于一些缩写,也经常当作错误的单词,例如 exe src 等。 如果你按第三步里的方法,用 i 来插入自己的词汇后,默认情况下,flyspell 会在 home 目录给你新建一个字典。但这并不是我们想要的方式,我们更希望能够严格地管理自己的词典,哪怕是放的位置。这个时候,我们可以建一个自己的词典,方便 flyspell 去检索我们自己的词汇,,有兴趣的读者可以自己进行配置。

通过上述命令配合 M-x ispell-buffer 或 M-x ispell-region,我们就可以很方便地对单词进行拼写检查。作为一个文本编辑器,没有单词拼写检查的功能,实在是一件很难想像的事。用好 ispell 模式,尽量少让单词拼写错误出现在你的文档里,方便与他人的交流与沟通。


林 绪虹,有着 5 年开发经验并有着 7 年 Emacs 使用经验,过去的 7 年时间里,他利用 Emacs 进行写文档、个人知识管理以及基本的编程工作,Emacs 使他能高效地完成他的工作。他拥有机械电子工程专业硕士学位,技术兴趣广泛并喜欢技术写作,并拥有自己的技术博客。

阅读(1099) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~