Welches Vim-Plugin sollte ich verwenden, wenn ich bestimmten Text auf diese Weise mit Klammern umgeben möchte?

Welches Vim-Plugin sollte ich verwenden, wenn ich bestimmten Text auf diese Weise mit Klammern umgeben möchte?

Ich möchte mich nur verwandeln

for(int i = 1; i <= N; i++) if(ord[i] == -1) dfs(i, 0, i);

Zu

for(int i = 1; i <= N; i++) {
    if(ord[i] == -1) dfs(i, 0, i);
}

so wenig Taste wie möglich drücken.

Ich habe das Plugin „Surround“ gefunden, aber es scheint, als ob es einige Funktionen (wie „yss{“) hat, die die gesamte Textzeile mit Klammern umgeben, aber nicht den Block, den ich umgeben möchte. Und wenn es möglich ist, muss ich an einer bestimmten Stelle einige neue Zeilen hinzufügen, daher denke ich, dass es sehr unbequem sein wird.

Und ich habe auch einige Original-Vim-Befehle gefunden, aber sie waren zu lang und scheinen zu viel Zeit in Anspruch zu nehmen.

Ich wäre so froh, wenn ihr mir sagen könntet, welches Plugin ich verwenden soll. Danke!

Antwort1

Dies lässt sich ganz einfach mit dem Plugin surround.vim erledigen: Zunächst müssen Sie eine visuelle Auswahl treffen if(ord[i] == -1) dfs(i, 0, i);(zum Beispiel mit f)llv$), damit das Plugin weiß, was es umgeben soll.

Der Befehl im visuellen Modus gSumschließt und platziert in einer neuen Zeile. Bei geschweiften Klammern ist das gS{.

verwandte Informationen