2017-05-22 19 views
5

括弧はdi{、HTMLタグはditです。スラッシュとアスタリスクを削除する方法はありますか?

私はしばしばCSSを扱います。スラッシュやアスタリスクを削除したいたとえば、

/* This is a comment. Delete or yank me. ;) */ 
.button { 
    content: 'Change my comment.'; 
} 

私はこれらのキーワードをすべてのパターンでどのようにマッピングしたいのですか?同様に(私はdelete insideyank insidedelete arounddelete and go insert mode (ci/)に必要な特別):

di/ 
yi/ 
ci/ 
ya/ 
da/ 
di* 
ya* 

等...

答えて

11

あなたはビジュアルモードのマッピングとオペレータ待機モードを組み合わせることにより、独自のテキスト・オブジェクトを定義することができますマッピング。

xnoremap i/ :<C-u>normal! T/vt/<CR> 
onoremap i/ :normal vi/<CR> 

あなたは組み込みのもののように使用することができます:ci/vi/di/yi/

このスニペットはi/テキストオブジェクトを作成します。

そして、この1つはa/テキストオブジェクトを作成します:ca/va/da/ya/:あなたは組み込みのもののように使用することができます

xnoremap a/ :<C-u>normal! F/vf/<CR> 
onoremap a/ :normal va/<CR> 

を。


BONUS:も優れtargets.vimあり

for char in [ '_', '.', ':', ',', ';', '<bar>', '/', '<bslash>', '*', '+', '%', '-', '#' ] 
    execute 'xnoremap i' . char . ' :<C-u>normal! T' . char . 'vt' . char . '<CR>' 
    execute 'onoremap i' . char . ' :normal vi' . char . '<CR>' 
    execute 'xnoremap a' . char . ' :<C-u>normal! F' . char . 'vf' . char . '<CR>' 
    execute 'onoremap a' . char . ' :normal va' . char . '<CR>' 
endfor 
+0

うわー!あなたのスニペットは素晴らしいです。ありがとうございました。 :) –

4

:ここにあなたが欲しいものを含めていない未満新しいテキストオブジェクトを作成し、私のvimrcから容易に拡張抜粋ですこれらのテキストオブジェクトに加えて膨大な数の他のオブジェクトも含まれています。チェックアウトする価値があるかもしれません。特に自分自身を定義する必要がない場合は、

関連する問題