vimで行ブロックをカスタムテキストにラップする正しい方法

vimで行ブロックをカスタムテキストにラップする正しい方法

vimHTMLファイルの編集中に数行を選択し、いくつかのショートカットを入力してその行をdjangoコメントブロックに含めることができるようにします。

たとえば、次のようになります。

one line
another line

私は欲しい:

{% comment %}
one line
another line
{% endcomment %}

ベストアンサー1

C ++コードブロックをすばやく無効にするために、次のマッピングを設定しました。#if 0...#endif

:vmap 0 V'<O#if 0<Esc>'>o#endif<Esc>

これは、vmapビジュアルモードが有効になっているときにのみ動作するマッピングを設定し()、ビジュアルモードを無効にし()、V最後のビジュアル選択の開始に進み('<)、その上に新しい行を入力し(O)、 "#if 0を入力します。 "テキストを入力して編集モードを終了し(<Esc>)、最後のビジュアル選択項目の最後に移動し、('>)の下に行を追加し、(o) "#endif"テキストを入力します。

開始テキストと終了テキストを置き換えると、同様のことができます。

:vmap 0 V'<O{% comment %}<Esc>'>o{% endcomment }<Esc>

これを行うには、入力に小文字を使用する文字固有のビジュアルモードではなく、入力Vに大文字を使用する行ごとのビジュアルモードを使用する必要がありますv

おすすめ記事