emacs中搜索中文單詞和含中文檔名的檔案
影片中搜索檔案用的是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的功能也比我當初寫的簡單演算法強大(如支援繁體字)。
這就是開源的美妙之處
。
https://www。zhihu。com/video/1116784281502015488
另外推薦我的教程: 如何提高程式設計速度 - Emacs高手教授輕鬆精通所有編輯器和IDE的秘訣_共114課時-51CTO學院