2009年2月20日 星期五

vim - 實做符合自己需求的 commenter

這是一段很簡單的 vim script , 用來插入 perl 的 comment 符號 ,單純的檢查行是否以 # 開頭,如果有就 strip 掉。如果沒有就 comment 起來。此 function 適用於 visual mode, 透過呼叫 getline('.') 來取得目前處理行的內容。

function! _perl_comment()
let l = getline('.')
if l =~ '^#'
exec 's/^#//g'
else
exec 's/^/#/g'
endif
endfunction

使用這段 comment function 請使用 visual map
vmap ,c :call _perl_comment()<CR>
讀者可利用類似的技巧來打造自己需求的 commenter 。譬如說,加入 fold marker 之類的東西。

此外可以透過 a:firstline 以及 a:lastline 來比對是否為開始行或結束行。