Emacs中的拼寫檢查

2022-07-05 11:36:14 字數 1413 閱讀 5189

無論是在emacs中寫英文日記(diary)、org mode筆記,還是撰寫程式的注釋和文件,拼寫檢查都是一項提高工作效率、保證成果品質的必不可缺的工具。拼寫檢查對於常見的文字處理軟體(如word、libreoffice)來說並不是什麼稀罕的功能,但是對於emacs這個純粹的文字編輯器來說,實現起來就顯得有些繁瑣、笨拙。具體說來,emacs本身並不具備任何拼寫檢查的能力,它是通過ispell模組呼叫外部的aspell命令來達成的。以此為基礎,為了能夠進一步實現一邊輸入一邊檢查的效果,emacs又需要通過flyspell minor mode呼叫ispell來實現。不管怎樣,拼寫檢查的功能總歸是在emacs中能用的——當然了,這既有助於無所不能的emacs作為乙個神器的美好形象,也完全符合unix的小而精、多個工具協同配合的設計思想。接下來,本文將具體介紹一下emacs中的拼寫檢查功能與使用方法。

首先說一下aspell。根據其官方**的說法,它是乙個自由、開源的拼寫檢查工具,最終是要用來替代以前的ispell命令。相較於ispell,aspell具有如下的優勢:

由於apsell被emacs ispell呼叫(當然,emacs ispell也可以被設定為呼叫其他拼寫檢查工具,如ispell),所以需要事先配置好aspell的預設語言。例如,我需要對英文做拼寫檢查,就在~/.aspell.conf檔案中加入下面一行即可:

lang en
aspell工作時會用到兩類詞典:

接下來,需要在emacs的啟動配置檔案~/.emacs中指定emacs ispell需要呼叫的外部拼寫檢查器為aspell:

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

然後,就可以使用emacs ispell提供的如下功能,對emacs中的當前游標處、緩衝區、區域進行單詞拼寫檢查和錯誤單詞的更改了:

有了emacs ispell提供的基本功能後,flyspell minor mode進一步提供了即時拼寫檢查功能。這包括:

對於以上介紹的emacs ispell、flyspell,emacs定義了一系列變數用於指定需要使用的詞典,具體如下:

使用者自定義詞典配置

單詞補全詞典配置

現有詞典列表

由於emacs的拼寫檢查功能是通過多工具配合、逐層開發出來的,所以上述介紹的詞典配置變數是層級搜索式的,非常繁瑣。但在實際使用的時候,如果我們只對一種常用的語言(如英語)做拼寫檢查並大體上使用系統預設設定,那麼就只需要在~/.emacs中設定ispell-dictionary的值就足夠了。例如,

(setq ispell-dictionary "en")

至此,本文關於emacs中拼寫檢查功能的配置與使用已經介紹完了。感興趣的讀者不妨在自己的電腦上體驗一下在emacs中用標準、正確的英文抒寫自己思想的感覺。

python 拼寫檢查

無意中刷微博看到這篇文章作者用很簡短的語句寫了乙個拼寫檢查的python程式。看完之後發現原來拼寫檢查的原理是這樣的,之前感覺應該是很高深的東西。但是由於對python中lambda表示式的不怎麼理解於是,我就又憑著自己的理解簡單的寫了一遍。沒有原文中作者的優化部分,只是簡單的實現了功能。而且是只有...

單詞拼寫檢查

給定n個單詞 n 10000 給定m個查詢 輸出無法查詢見的單詞的個數 分析 貌似是雜湊表的入門題?我覺得好難。做雜湊表需要一些技巧的,大概就是對單詞的首 中 尾的字元順序碼加權,方便插入也方便查詢。遇到be和bee這種單詞可能費一些時間,不過總的來說還是很快的。單詞拼寫檢查 include inc...

python PyEnchant(拼寫檢查)

本文主要是記錄了一下pyenchant包的安裝以及簡單使用。這個包主要功能是對英語單詞進行拼寫檢查,並可以對拼寫錯誤的單詞推薦一些可能的正確單詞。使用pip直接安裝即可,指令如下 pip install pyenchant使用上述指令,如果安裝沒有錯誤就是安裝成功了,一般情況下 mac ubuntu...