影片中搜索檔案用的是emacs外掛 technomancy/find-file-in-project

在檔案中搜單詞用了abo-abo/swiper(Swiper)

這兩個外掛實際上並不支援中文。

是我拓展了他們所公用的庫Ivy (Ivy和上文的Swiper共享同一程式碼庫),使其支援中文。

我的拓展是通用的。意味所有基於`ivy`的命令都支援中文了。`ivy`是emacs最流行的工具庫。所以大批基於ivy外掛都支援中文了。

程式碼很簡單 (需要pinyinlib和ivy), 見 redguardtoo/emacs。d

init-ivy。el

(setq ivy-re-builders-alist ‘((t 。 re-builder-extended-pattern)))

一行程式碼就可以設定了。

re-builder-extended-pattern

定義也在同一個檔案。

用拼音首字母搜尋的靈感來自於善用佳軟關於total commander的文章

https://

xbeta。info/tc-pinyin-qu

icksearch。htm

我的 redguardtoo/find-by-pinyin-dired 可能是Emacs中第一個使用該演算法的外掛。

在Ivy中用該演算法拓展的主意也不是我想出來的。 是有人看到我的外掛覺得不錯,然後把其中關於拼音搜尋的演算法提取出來作成了一個可複用的庫 cute-jumper/pinyinlib。el

其他人又基於pinyinlib這個庫開發了新的外掛和拓展了新功能。

有意思的是, 我寫完 find-by-pinyin-dired 後完全忘記這事。很久以後當我又要在不同場景下用拼音首字母查詢, 發覺別人早就做了更多工具和應用。所以我只要把別人程式碼拿來用就行了。

pinyinlib的功能也比我當初寫的簡單演算法強大(如支援繁體字)。

這就是開源的美妙之處

emacs中搜索中文單詞和含中文檔名的檔案

https://www。zhihu。com/video/1116784281502015488

另外推薦我的教程: 如何提高程式設計速度 - Emacs高手教授輕鬆精通所有編輯器和IDE的秘訣_共114課時-51CTO學院