UNITE ALL SOURCES
為了寫這篇,還特地試了一下 Command-T 這個搜尋工具,它找的 source 是「檔案」。
Command-T 快速找到檔案,輸入框在圖片下方
而我慣用的 FuzzyFinder 則是能找更多東西,例如之前寫過找 register 和分頁;執行的動作也不一定是「開啟」,可以是貼上、跳過去或其他。
加這些 script 時難免會想「不管什麼東西,只要 能找 的都交給 FuzzyFinder 吧」。
在另一個 plugin: ku 裡這些「能找的東西」被進一步定義為 source。
ku 在自訂 source 和相應的動作上有更完整的設計,而不是有「本來是用來找 file」的味道。
ku 找檔案的樣子
按了 <Tab> 可以選 action,預設 mapping 跟 unite.vim 大致一樣
最近才發現一個新的,Shougo 寫的 unite.vim,因為看到高手的設定檔換上了,就來試試。
不依靠 completion 介面
Unite.vim 第一個明顯特色是打開尋找 window 後,彈出選項的介面不是 Vim 的 completion 功能(按 <C-X><C-P> 彈出來的那種),而是自己在 buffer 裡畫出來的。
這表示可以進入 normal mode 改你的關鍵字,plugin 也更有機會對選項動手腳,畢竟 completion 原本用在 insert mode,確實限制較多。
左邊 split 的視窗就是 unite,大得嚇人(預設是水平 split 在上方,但還是很高)
這裡可以「多選」,以前是做不到的。
當然也有模糊搜尋,例如輸入 **/*re 7 !2 縮小搜尋結果
Buffer 裡面可以亂搞,例如可以進 visual mode 多選
依照 source 的 kind 選擇能用的動作,概念跟 ku 差不多
好多好用的 source
Register、分頁都是預設就有了,doc 裡還有一堆,讀完還可以看 github wiki 上的 unite plugins,經常有新的 source 真是強大到令人生氣。
而且沒有限制一次只能找一種 source,例如 :Unite file buffer file_mru
會把檔案、buffer 和最近開的檔案放一起給你選。
找 register
把 / 搜尋的結果當成 source,也是預設功能
把任意命令的輸出當成 source,例加下面是 :Unite output:version
,這也是預設功能
結論
兩個問題 1) 開出來的 window 太大,好醜 2) 目前還是太常遇到 error
主要是問題 1 好像無解,所以我要繼續用 FuzzyFinder…… 不然其實解這些 error 也很有啟發性。
至於 ku 試了一下好像速度比較慢(可能 cache 沒設好?)文件也不是很全,有點疑惑為什麼不沿續開發 FuzzyFinder 就好。