一般選擇連續多行的註解時,會按 V 進入 visual mode,然後移動游標框住想要的;行數一多,懶惰就出現了。

選取整個註解區是件懊懆事

以下簡陋模擬一個註解用的 text object,方便在 normal mode 按 vac 選取整塊註解(不含空行);同樣按 dac 刪除、yac 複製。

gist: 554634 - [.vimrc] Simple text object for continuous comment

實作上只判斷每行的第一個非空白字元是否被 syntax highlight 為 Comment,所以並不十分可靠,也僅能做 linewise 的選取。若要改善功能,可考慮導入 'comments''commentstring''filetype' 等選項(參考 EnhancedCommentifytComment 的做法),不過複雜度的增加也令人卻步。

附 tComment 用的 map,若游標在註解區就反轉整塊註解,否則照常 :TComment。

map <silent><expr> <LocalLeader>ca IsInComment() ? "vac:TComment<CR>" : ":TComment<CR>"