Vim Advent Calendar 2013 167日目: 任意の正規表現パターンにマッチする textobj を書いた
[追記]
指摘されて初めて気づいたんですが textobj が operator になっていたので修正しました…。
素で間違えて恥ずかしい。
この記事は Vim Advent Calendar 2013 167日目の記事になります。
Vim Advent Calendar 書きたい人募集中です。
興味のある方は気軽にご参加ください。
さて、今回は任意の正規表現パターンにマッチする textobj プラグインをつくりました。
もともと『任意の正規表現パターンにマッチする textobj』は vim-textobj-user の機能として備わっているんですが、それをラップして
[使い方]
textobj#from_regexp#mapexpr({pattern}) を任意のキーに割り当てて使用します。
" " 設定例 " " 英数字と _ にマッチする範囲 omap <expr> i<C-w> textobj#from_regexp#mapexpr('\w\+') xmap <expr> i<C-w> textobj#from_regexp#mapexpr('\w\+') " URL にマッチする範囲 omap <expr> iul textobj#from_regexp#mapexpr('https\?:\/\/\S\+') xmap <expr> iul textobj#from_regexp#mapexpr('https\?:\/\/\S\+') " # と # の # を除いた間にマッチする範囲 omap <expr> i<A-s> textobj#from_regexp#mapexpr('#\zs.\{-}\ze#') xmap <expr> i<A-s> textobj#from_regexp#mapexpr('#\zs.\{-}\ze#')
結構汎用性が高そうな気がする。
と、ここまで書いて色々と改良したくなってきた…。