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


13

崇高なテキストには、スコープ内のすべてを選択する「範囲を選択範囲に展開SHIFT + CMD + SPACEというクールな機能があります。

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

vimでも同じことを実現したいと考えています。

回答:


22

もしあなた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+ "は、二重引用符で囲まれた文字列を意味します。

また、周囲の文字やタグを追加/置換/削除できるサラウンドプラグインに興味があるかもしれません。


はい、私はvimを参照していました。ありがとうございました。それを拡張し続ける方法はあり[[[event touchesForView: button] anyObject]ますか、例えば、カーソルがtouchesForViewアクションの近くにある場合v+ a+ [を選択[event touchesForView: button]すると、もう1レベル拡張したいですか?つまり、[[[event touchesForView: button] anyObject]
palaniraja 2013

3
@palaniraja:はい、あります。テキストオブジェクトの前に数字を付けることができます(例:v+ 2+ a+)[
トール

6

VIM-拡張領域をプラグイン延びる/テキストオブジェクトの(設定)を設定し、視覚的に選択された領域を縮小することを可能にします。つまり、変数の選択、割り当て、ブロック、関数などの選択から始めることができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.