突然ですがこれだけは共有したかった Vim の設定を紹介。ドチャクソ便利です。
NeoBundle を使っているかたが下の設定をすると、様々なカッコ(全角・半角問わず)の中を ib
というテキストオブジェクトで扱うことができるようになります。たとえば中身を選択したいときは vib
, 削除したいときは dib
です。同様に、カッコまで含めたテキストオブジェクトは ab
になります。
私は特に Vim で日本語も書くので、この設定がたいへん便利。頭が悪いので多くのキーバインドを覚えることはできませんが、とりあえず braces が出てきたら b
、と覚えておけばいいだけなので重宝しております。
NeoBundle 'kana/vim-textobj-user' NeoBundle 'kana/vim-textobj-jabraces' " aj), aj}, aj], aj>, ajA, ajY, ... NeoBundle 'osyo-manga/vim-textobj-multiblock' " nobind NeoBundle 'osyo-manga/vim-textobj-multitextobj' " ab, ib to all braces. let g:textobj_multitextobj_textobjects_i = [ \ "\<Plug>(textobj-multiblock-i)", \ "\<Plug>(textobj-jabraces-parens-i)", \ "\<Plug>(textobj-jabraces-braces-i)", \ "\<Plug>(textobj-jabraces-brackets-i)", \ "\<Plug>(textobj-jabraces-angles-i)", \ "\<Plug>(textobj-jabraces-double-angles-i)", \ "\<Plug>(textobj-jabraces-kakko-i)", \ "\<Plug>(textobj-jabraces-double-kakko-i)", \ "\<Plug>(textobj-jabraces-yama-kakko-i)", \ "\<Plug>(textobj-jabraces-double-yama-kakko-i)", \ "\<Plug>(textobj-jabraces-kikkou-kakko-i)", \ "\<Plug>(textobj-jabraces-sumi-kakko-i)", \] let g:textobj_multitextobj_textobjects_a = [ \ "\<Plug>(textobj-multiblock-a)", \ "\<Plug>(textobj-jabraces-parens-a)", \ "\<Plug>(textobj-jabraces-braces-a)", \ "\<Plug>(textobj-jabraces-brackets-a)", \ "\<Plug>(textobj-jabraces-angles-a)", \ "\<Plug>(textobj-jabraces-double-angles-a)", \ "\<Plug>(textobj-jabraces-kakko-a)", \ "\<Plug>(textobj-jabraces-double-kakko-a)", \ "\<Plug>(textobj-jabraces-yama-kakko-a)", \ "\<Plug>(textobj-jabraces-double-yama-kakko-a)", \ "\<Plug>(textobj-jabraces-kikkou-kakko-a)", \ "\<Plug>(textobj-jabraces-sumi-kakko-a)", \] omap ab <Plug>(textobj-multitextobj-a) omap ib <Plug>(textobj-multitextobj-i) vmap ab <Plug>(textobj-multitextobj-a) vmap ib <Plug>(textobj-multitextobj-i)