IE10 for Windows 7

IE10 vs Aurora on Text rendering

剛剛正式 Release 了,第一眼印像是文字渲染方式不太一樣,和 Aurora 比一下。


eregex.vim 2.60

我這幾天釋出了 eregex.vim 2.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,其實感覺還蠻特別的。


Vim JavaScript Libraries Syntax

JavaScript Libraries Syntax

我的新 Vim Plugin,前幾天整理 Vim 設定和修 plugin 時順手弄的,JavaScript Libraries Syntax,說順手其實也不太順,為了支援 SyntaxComplete 以及不要和現有 JavaScript syntax 衝突,還是花很多時間查資料和測試,目前支援的 library 有 jQueryunderscore.jsBackbone.jsprelude.ls,其中 jQuery 是拿之前就 有的 為基礎修改,其他都是新寫的。支援 SyntaxComplete 的語言有 JavaScript、CoffeeScriptLiveScript,安裝建議用 pathogen 或是 vundle,專案放在 Github 上,patch welcome。


Vim Syntax Complete

Vim 的 Omni completion 功能推出之時,同時有提供一個 syntaxcomplete 的 function 可以拿 syntax highlight 裡面的關鍵字來做自動完成,設定方法很簡單:

setlocal omnifunc=syntaxcomplete#Complete

這樣只要觸發 omnicomplete 的動作就會觸發這個 function ,列出 syntax 裡面有定義的關鍵字,不過他有一點小限制,就是該 syntax 設定檔裡面的 syntax group 名稱要是該檔案類型的 filetype 開頭的,例如 javascript 檔案就要 javascriptMethods, javascriptObjects 才會列入,如果是 jsPrototype, styles 為名稱的 group 就不會列出來,這其實也是 vim syntax file 寫作的習慣之一。

而除了這個限制之外,因為設定是直接用上 omnifunc,結果就是其他有自己專屬的 omnifunc 的語言就無法同時使用到 syntaxcomplete 的功能,不然就是要把觸發的指令切開,設定成不同的快速鍵。不過使用上就沒這麼方便,還好我用的 autocomplpop 有支援使用者自定義的函數,定義的函數介面和 omni complete functilon 一樣,所以我就加上兩行設定:

let g:acp_behaviorUserDefinedMeets = 'acp#meetsForKeyword'
let g:acp_behaviorUserDefinedFunction = 'syntaxcomplete#Complete'

結果就可以用 autocomplpop 內建的的 keyword 觸發條件來觸發 syntax complete,還算蠻符合需求的。

最後回來看一下 syntaxcomplete,這個 function 雖然是 Vim 內建的,不過其實也有放在 vimscript 上,而且上面還有比較新的版本,最近我有跟作者聯絡,或許還會再有新功能吧。另外就是 autocomplpop 很久沒更新了,所以我有 fork 一版出來自己加了些給 js, coffee, css 檔的預設行為,好像還修了一個 bug,本來有想接上新版的 snipMate,不過比想像的複雜不少,所以暫時放棄了。


更之前的文章