今天下午在尋找能讓 Vim 的 Regular Expression 變得好看一點的方法,因為實在太多斜線了,當然直接就把目標鎖定在 perl 的語法,一開始找到一個 vim tip 有建議用 perldo ,不過編譯時要把 +perl 弄起來,使用上也不是很好用,而且不能搜尋,只能做取代,雖然 有人寫了 function 來搜尋,不過實際測試之後離方便使用還有些距離。 c9s 還有建議我用 very magic 看看,結果還是不夠滿意,後來換成找日本那邊,終於找到 eregex.vim 這個 plugin ,他的作法是把 perl/ruby 的 regexp 語法用 function 轉成 vim 的 regexp 語法,所以問題少很多,預設會把 S(大寫S)替換成用 perl/ruby 的 regexp 語法來搜尋搜尋取代的指令,使用方法和原來 s(小寫S)的都一樣,另外單純搜尋的部分有 :M/ 這個命令,也可以 map 到原來的 / 上:
nnoremap / :M/
使用上就和原來幾乎完全一樣了,超棒的~
順帶一提, Ubuntu 上要編譯出 +perl 的功能要 確定一下 libperl.so 在不在 ,像我的系統就只有 libperl.so.5.8,還要自己做個鏈結。
由於作者聯絡不上,我已經接起 eregex.vim 的維護工作了,放在 github 上。