我這幾天釋出了eregex.vim2.6,因為離上次更新有點久了,所以重新來介紹一下這個 Vim plugin。
Vim 裡面搜尋和取代的 Regular Expression 有自己的一套語法,不過對於平常習慣使用 Perl style 語法的人來說實在是很不方便,大部分人解決這個問題使用的是ack.vim,不過 ack.vim 使用的是系統安裝好的 ack,而且命令比較麻煩,所以我一直用另外一套日本人寫的 eregex.vim,它的作法是把你輸入的 Perl style 語法用對照表轉成 Vim style 的語法,然後用 Vim 的搜尋指令來搜尋,原來的開發者 安久津 幾乎是失聯,於是我大概一年半前就自己開維護起來,不過當時就有兩個 issue 處理不了,沒想到最近終於成功解掉了。
原來的 eregex.vim 只能單向搜尋,也就是只有支援/
而不支援?
,之前我加上了?
反向搜尋的支援,不過問題是反向搜尋後,按n
找下一個的方向還是正向的,當時就是找半天不知道問題在哪,最近才發現問題在搜尋的相關參數,包括搜尋方向以及是不是要 highlight 的設定,都會在離開 function call 之後被重設,於是我的作法就是讓我的自動指令變的複雜一點,相對的,本來很簡單的 keymapping 也複雜了許多,所以我一不做二不休,改成自動 mapping 的機制,使用者可以自己切換,設定 mapping key,終於可以讓搜尋指令的行為和原生的完全一樣,詳細可以上 github 看 README 的使用說明。
拖了將近兩年才解開的 issue,其實感覺還蠻特別的。