Linke Klammer in Vim automatisch einfügen

Linke Klammer in Vim automatisch einfügen

Ich versuche, in Vim etwas Objective-C zu programmieren, und was mir in Xcode fehlt, ist die Möglichkeit, die linke passende Klammer automatisch einzufügen.

Angenommen, ich habe folgenden Text:

NSString *string = [NSString alloc] init

und ich füge ']' am Ende der Zeile ein, dann möchte ich, dass es wie folgt vervollständigt wird:

NSString *string = [[NSString alloc] init]

Irgendwelche Ideen?

Antwort1

Das ist eine nette Funktion.

Außer der VerwendungUmgeben, ich kenne keine genaue Lösung.

Bei Surround beginnend mit dem Cursor auf dem tvon initin NSString *string = [NSString alloc] init:

  1. vum in den visuellen Modus zu wechseln
  2. F[um alles bis zum ersten auszuwählen[
  3. s]um es zu umgeben mit[]

vF[s]kann auf lange Sicht mühsam sein. In Ermangelung einer besseren/intelligenteren Lösung können Sie eine einfache Zuordnung wie die folgende vornehmen:

inoremap ]] vF[s]

Antwort2

Dieses Pluginkönnte das sein, wonach Sie suchen. Ich habe es selbst noch nicht richtig ausprobiert, aber es scheint zu funktionieren.

Wo befindet sich beispielsweise |der Cursor:

"foo|" becomes "[foo |]" after ] is pressed.
"foo bar|" becomes "[foo bar]|"
"foo: bar|" becomes "foo: [bar |]"
"foo bar: baz|" becomes "[foo bar: baz]|"

Bestimmte nützliche Schlüsselwörter werden auch intelligent umschlossen

verwandte Informationen