Einfache Umformatierung von Funktionsargumenten auf mehrere Zeilen in Vim

8

Besonders beim Bearbeiten von Legacy-C ++ - Code finde ich mich oft manuell neu formatieren:

%Vor%

zu etwas wie diesem:

%Vor%

Gibt es dafür einen eingebauten Befehl? Wenn nicht, kann jemand ein Plugin vorschlagen oder einen VimScript-Code dafür bereitstellen? ( J oder gq kann den Prozess sehr einfach umkehren, sodass es nicht in beide Richtungen gehen muss.)

    
Keith Pinson 04.10.2012, 18:53
quelle

3 Antworten

5

Sie können splitjoin verwenden.

%Vor%

Geben Sie in oder in Klammern gS zum Teilen ein. Du bekommst:

%Vor%

Sie können auch vim-argwrap

verwenden     
Chun Yang 16.05.2015, 04:38
quelle
3

Folgendes habe ich in meine .vimrc geschrieben. Es ist flexibler als die Antwort von @rbernabe; Die Formatierung basiert auf den globalen Einstellungen cinoptions und setzt Kommas einfach auseinander (und kann daher bei Bedarf für mehr als nur Funktionen verwendet werden).

%Vor%

Damit wird F2 im normalen Modus und im Einfügemodus auf die aktuelle Zeile, die alle Kommas (mit 0 oder mehr Leerzeichen nach jedem Zeichen) in Kommas mit einem Wagenrücklauf nach jedem Zeichen konvertiert, gesucht und ersetzt. Wählt dann die gesamte Gruppe aus und fügt sie mit dem integrierten Vim-Befehl = ein.

Ein bekanntes Manko dieser Lösung ist für Linien, die mehrere Template-Parameter enthalten (es bricht auch ihre Kommas und nicht nur die Kommata der normalen Parameter).

    
Keith Pinson 04.10.2012 21:01
quelle
2

Ich würde ein Register auf ein voreingestelltes Makro setzen. Nach einigen Tests bekam ich folgendes:

%Vor%

Mit dieser Zeile in Ihrem vimrc können Sie die Methoden formatieren, indem Sie das Makro x: @x mit dem Cursor über der zu formatierenden Zeile ausführen. Es fügt 12 Leerzeichen für die Einrückung hinzu:

%Vor%

Nach dem Ausführen des Makros: @x Sie erhalten

%Vor%

Wenn Sie in der Zeile der Funktionsdefinition sind, können Sie einfach einen Ersatz vornehmen:

%Vor%

Was ist einfach in ein Mapping zu setzen:

%Vor%     
rbernabe 04.10.2012 19:21
quelle

Tags und Links