先頭の空白を決して含まない「」に似た動きはありますか?


10

私はa"vimでかなり頻繁にモーションを使用しています。たとえばca"、コードの一部をリファクタリングするときに使用して、ハードコードされた引数を変数名に置き換えます。このアプローチの問題a" は、末尾に空白がない場合、先頭の空白が含まれることです

末尾の空白は含まれますが、空白がない場合は先頭の空白が含まれます。

したがって、次のように関数呼び出しを編集すると、

aFunction(arg1, "toBeReplaced", arg3) #original
aFunction(arg1, replacedArg, arg3)    #refactored

私は再挿入スペースの前に手動に持っているreplacedArgとしてca"、それが削除されます。

この空白を含まない同様のモーションはありますか、それとも代わりに使用できる何か他のca"スペースを入力する手間を省くことができますか?

ノート:

  • cf"文字列にエスケープされた引用符が含まれていない限り、私がやりたいことを行いますが、文字列の先頭にカーソルを置く必要があります。文字列内のどこからでも使えるものを使いたいのですが、入力するのが少し?"<Enter>cf"面倒です。
  • それは、単一の<Space>キーストロークではなく、最初にスペースを含めることを忘れがちで、少なくとも4回の追加のキーストローク(bi<Space><Esc>)がかかり、フォーカスを失うという事実についての詳細です。したがって、置換コマンドの長さは、指定された文字の間のテキストのみを削除してから挿入モードに入る限り、それほど重要ではありません。

1
を使用?"<Enter>して行の後方の引用符を検索する代わりに、を使用できますF"Fと同じですfが、左側を検索します。以下の回答はあなたの質問にFはよく見えますが、それだけでも便利なコマンドです。
Lithis、2015

回答:



10

Wellleのtargets.vimプラグインにあります。関連する部分を引用するには(「見積もり」セクション内):

a' a" a

  • 見積もりを選択します。

  • これはシークをサポートするためにVimのデフォルトのテキストオブジェクトを上書きします。

  • Vimの引用テキストオブジェクトとは異なり、これには周囲の空白は含まれません


このプラグインはをオーバーライドしているように見え、元の動作にa"使用A"していますか?
Martin Tournoij、2015

...一方で、「左側」へのシークも許可されていると思います
VanLaser

5

代わりに、引数/パラメーターテキストオブジェクトを使用できます。現在、Vimにはネイティブ引数テキストオブジェクトはありませんが、いくつかのプラグインがあります。

個人的に私は自分のプラグイン、argumentative.vimを使用していますが、sideways.vimとtargets.vimの両方について良いことを聞いています。

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