当前位置: 主页 > 操作系统 > Linux > 为Emacs添加单词拼写检查功能

为Emacs添加单词拼写检查功能

时间:2010-7-3来源:互联网 点击:
       如果经常要用 Emacs 来写英文文章和邮件,作为一个文本编辑器,那么一个英文单词的拼写检查工具就必不可少了。幸运的是,Emacs 提供了 flyspell 模式来对拼写作出检查。lyspell 只是一个 Emacs 的前端,需要配合其它拼写检查程序如 Aspell、Ispell 或是 Hunspell 来工作,即 flyspell 模式提供了桥接 Emacs 与其它拼写检查程序的管道。推荐使用员 Aspell 作为拼写检查程序,不推荐使用 Ispell,因为它太老了。本文就简单介绍一下基于 Aspell 的 flyspell 的基本使用方法,看看 flyspell 是如何通过使用 Aspell 来为 Emacs 提供单词拼写检查的功能。

安装 Aspell
不论是在 Linux 下或是 Windows 下,安装 Aspell 都需要安装 Aspell 本身以及指定语言的词典。
在 Linux 下安装 Aspell,非常简单,下面几个命令就足够了:
1) 安装 Aspell
    ./configure && make 
    make install 

2) 如果 Aspell 已经正确安装好了,我们就可以安装 词典了:
    ./configure 
    make 
    make install 

顺利安装后就可以使用了。
在 Windows 下安装 Aspell,推荐使用二进制版本进行安装,主要步骤有两步:
1) 下载 Aspell Full installer并安装;
2) 再安装你需要的词典,Aspell 提供了大概有二十几种语言的词典,下载你需要的词典并安装到你的 Aspell 的安装目录,词典就会被解压到相应的位置。

在 Emacs 里配置 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 模式的基本使用技巧
flyspell 模式的用法,在 flyspell 手册里有着详细的叙述。在这里,并不推荐 on the fly 的使用方法,因为这样很有可能会让你的 Emacs 运行得非常卡( Emacs 和外部程序的通信与数据交换总是会浪费大量的时间)。
最好的使用方法是,平时不开 flyspell,等你写完了文章需要语法检查一下的时候,把这个 region mark 起来,然后使用命令 M-x ispell-region 就可以查出当前 region 有什么错误。
当然,如果你要对当前文章整篇进行检查,你可以直接用命令 M-x ispell-buffer 来对当前文章进行人机交互的单词拼写检查 ( interactive spell checking )。运行这两个命令后,flyspell 如果检查到它认为有拼写错误的单词,就会提示你进行核对,常用的命令如表 1 所示。

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

给 flyspell 添加自定义的词典
flyspell 的词典,并没有太多的计算机词汇,对于一些缩写,也经常当作错误的单词,例如 exe src 等。如果你按第三步里的方法,用 i 来插入自己的词汇后,默认情况下,flyspell 会在 home 目录给你新建一个字典。但这并不是我们想要的方式,我们更希望能够严格地管理自己的词典,哪怕是放的位置。这个时候,我们可以建一个自己的词典,方便 flyspell 去检索我们自己的词汇,手册里有讲到详细的内容,有兴趣的读者可以自己进行配置。
站长资讯网
. TAG: Emacs 单词检查
推荐内容最近更新人气排行
关于我们 | 友情链接 | 网址推荐 | 常用资讯 | 网站地图 | RSS | 留言