Gibt es eine Bewegung ähnlich einer ", die niemals führende Leerzeichen enthält?"

10

Ich benutze die a"Bewegung ziemlich oft in vim; Beispiel: Verwenden Sie ca"beim Refactoring eines Codeteils, um ein fest codiertes Argument durch einen Variablennamen zu ersetzen. Das Problem bei diesem Ansatz besteht darin, dass a" führende Leerzeichen eingeschlossen werden, wenn kein nachfolgendes Leerzeichen vorhanden ist :

Alle nachfolgenden Leerzeichen sind enthalten, sofern keine vorhanden sind. Dann sind führende Leerzeichen enthalten.

Wenn ich also einen Funktionsaufruf wie folgt bearbeite:

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

Ich muss das Leerzeichen vorher manuell neu einfügen, replacedArgda es ca"gelöscht wird.

Gibt es eine ähnliche Bewegung, die diesen Leerraum nicht enthält, oder gibt es noch etwas, das ich verwenden kann, anstatt ca"dass ich einen zusätzlichen Raum eingeben muss?

Anmerkungen:

  • cf"macht, was ich will, solange die Zeichenfolge keine maskierten Anführungszeichen enthält, aber ich muss den Cursor am Anfang der Zeichenfolge haben. Ich möchte etwas, das ich von überall in der Zeichenfolge verwenden kann und dessen ?"<Enter>cf"Eingabe ziemlich umständlich ist.
  • Es geht weniger um den einzelnen <Space>Tastendruck als vielmehr um die Tatsache, dass ich anfangs oft vergesse, das Leerzeichen einzuschließen, was mich mindestens vier zusätzliche Tastenanschläge ( bi<Space><Esc>) kostet und meinen Fokus unterbricht . Daher ist die Länge des Ersetzungsbefehls nicht so wichtig, solange er nur den Text zwischen den angegebenen Zeichen löscht und dann in den Einfügemodus wechselt.
l4mpi
quelle
1
Anstatt ?"<Enter>in einer Zeile rückwärts nach einem Angebot zu suchen, können Sie es verwenden F". Fist das gleiche wie faber sucht nach links. Die folgenden Antworten sehen für Ihre Frage besser aus, sind jedoch Fein nützlicher Befehl für sich.
Lithis

Antworten:

1

Von /superuser/537453/vim-copy-quoted-string-without-whitespace : Verwenden Sie 2i"anstelle von a". Siehe auch :help i'.

Sebastian Blask
quelle
Klappt wunderbar! Ich habe mich entschieden, diese Antwort gegenüber den anderen zu akzeptieren, da sie mit einem einfachen Vim funktioniert, ohne sich auf Plugins zu verlassen.
l4mpi
10

Es gibt in Wellles targets.vim Plugin. So zitieren Sie den relevanten Teil (innerhalb des Abschnitts " Ein Zitat "):

a' a" a

  • Wählen Sie ein Angebot aus.

  • Dies überschreibt das Standardtextobjekt von Vim, um die Suche zu unterstützen.

  • Im Gegensatz zu Vims Anführungszeichen enthält dies kein umgebendes Leerzeichen .

VanLaser
quelle
Es sieht so aus, als ob dieses Plugin überschreibt a"und A"für das ursprüngliche Verhalten verwendet?
Martin Tournoij
... während, glaube ich, auch das Suchen "nach links"
erlaubt