web-dev-qa-db-ja.com

sublimetextの「スコープへの選択の拡張」に代わるvi / vim

崇高なテキストには、「選択範囲をスコープに拡張 "SHIFT + CMD + SPACE」と呼ばれるクールな機能があり、スコープ内のすべてを選択します。

スコープ内のすべてを選択し、完全に機能します()、[]、または{}を繰り返すと、スコープが親に拡張されます。

私はvimで同じことを達成しようとしています。

13
palaniraja

vimを意味する場合は、ビジュアルモード(:help visual-mode)とテキストオブジェクト(:help text-objects)でこれを行うことができます。

中括弧付きのブロックを選択するには、次のようにします。 v+a+{、囲んでいるブロックを選択するには繰り返し a+{。を使用して中括弧の内容のみを選択できることに注意してください i の代わりに a

これらのコマンドは、vimの他の多くのコマンドと同様に、アクションとそれに続くテキストオブジェクトによって構築されます。ここで、テキストオブジェクトの前に番号を付けて、アクションの影響を受けるオブジェクトをさらに含めることができます。したがって、置き換えることでオブジェクトを削除することもできます v 沿って d またはそれを修正します c、など。

(){}[]以外にも、次のような多くのテキストオブジェクトがあります。

  • a+w 言葉を意味します。
  • a+s 文を意味します。
  • a+p 段落を意味します。
  • a+<<>ブロックを意味します。
  • a+' 一重引用符で囲まれた文字列を意味します。
  • a+" 二重引用符で囲まれた文字列を意味します。

surround プラグインを使用すると、周囲の文字やタグを追加/置換/削除することもできます。

22
Thor

vim-expand-regionプラグイン は、視覚的に選択された領域を(構成可能な)テキストオブジェクトのセットに拡張/縮小することを可能にします。つまり変数の選択、割り当て、ブロック、関数などの順に選択できます。

6
Ingo Karkat