Vim: Funktionskopie

7

Gibt es einen Befehl zum Kopieren einer vollständigen Funktion? (Nicht durch Auswahl mit der Maus)

Beispiel: 10yy - & gt; kopiert 10 -Zeilen von der Cursorposition.
Ich kenne die Anzahl der Zeilen einer Funktion nicht, möchte aber die gesamte Funktion kopieren.

Gibt es einen Befehl zum Kopieren der gesamten Funktion?

    
Tamin 17.05.2012, 09:04
quelle

3 Antworten

22

Das mache ich in JavaScript und PHP:

%Vor%
  1. Platziere den Cursor irgendwo in meiner Methode,
  2. va{ , um den Codeblock visuell auszuwählen,
  3. V , um die Auswahl von zeichenweise nach zeilenweise zu ändern,
  4. y zu jagen

Wenn Sie zu tief sind und va{ nur einen Teil Ihrer Funktion auswählt, können Sie mehr a{ ausführen, bis Sie ausgewählt haben, was Sie wollen.

    
romainl 17.05.2012 11:40
quelle
2

Wenn Sie VIM und den Funktionskörper in der Programmiersprache verwenden, die Sie gerade mit geschweiften Klammern umgeben, können Sie den Cursor einfach auf eine der geschweiften Klammern setzen und y% eingeben.

    
satoru 17.05.2012 09:09
quelle
2

Curly-geschweifte Sprachen (wie Java) können die ]m -Befehle zum Navigieren zu Funktionen verwenden; Einige Dateitypen definieren auch ]] dafür. Mit diesem können Sie [mV]My verwenden (zum Anfang der Funktion gehen, den zeilenweisen visuellen Modus starten, zum Ende der Funktion gehen, yank).

Viele Dateitypen definieren auch das Falten von Funktionen. Damit können Sie zCyyzO verwenden (schließen Sie alle Falten, ziehen Sie die gesamte Falte unter den Cursor, öffnen Sie die Falte).

    
Ingo Karkat 17.05.2012 09:51
quelle

Tags und Links