感谢支持
我们一直在努力

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

导言


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


flyspell 只是一个 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 去检索我们自己的词汇,手册里有讲到详细的内容,有兴趣的读者可以自己进行配置。


实践


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


参考资料


关于 Emacs 用法请参考 Shell 专题中的 Emacs 部分。



在 developerWorks Linux 专区 寻找为 Linux 开发人员(包括 Linux 新手入门)准备的更多参考资料,查阅我们 最受欢迎的文章和教程。



在 developerWorks 上查阅所有 Linux 技巧 和 Linux 教程。



关于作者


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

赞(0) 打赏
转载请注明出处:服务器评测 » Linux 技巧:活用 Emacs 的单词拼写检查功能
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏