Verschiebe Abschnitt zu neuer Datei in vim

8

Ich habe eine section in file1 , die in file2 verschoben werden soll. Normalerweise würde ich dies tun, indem ich den Block visuell auswähle, ihn lösche, :wq von file1 , file2 öffne, dann einfügen.

Gibt es eine einfache Möglichkeit, einen Textblock von file nach file2 zu verschieben, ohne vim zu schließen?

    
simont 15.05.2012, 12:09
quelle

4 Antworten

5

Sie könnten Ihre neue Datei in einem Split mit :sp newfile öffnen und dann den Block wie gewohnt aus Ihrer ersten Datei löschen. Wechseln Sie dann zu dem anderen Split mit ctrl w und w . Verwenden Sie dann p , um den gelöschten Inhalt in die andere Datei zu übernehmen.

    
Jani Hartikainen 15.05.2012, 12:12
quelle
20

Alternativ:

  1. Schreibe die Auswahl in die neue Datei :'<,'>w file2

  2. dann erneut auswählen und löschen mit gvd

Der erste Schritt ist in vimtutor Lesson 5.3: SELECTING TEXT TO WRITE .

enthalten     
Hotschke 26.04.2013 09:30
quelle
2

Sie könnten die Datei in einem neuen Puffer öffnen.

öffne einfach die Datei via :e file2 und füge den Text ein. Um schnell zwischen den Puffern zu wechseln, verwenden Sie entweder :e # oder :b #

siehe :help buffers für weitere Informationen

    
dwalter 15.05.2012 12:14
quelle
2

Da niemand das erwähnte: Sie können stattdessen Registerkarten verwenden.

  1. Wählen Sie Ihren Block.

  2. Löschen Sie es mit d

  3. Erstellen Sie einen neuen Puffer in der neuen Registerkarte mit :tabnew newfile.name

  4. Fügen Sie es ein und speichern Sie es mit p und :w

  5. Sie können mit gT zurückkehren oder den aktuellen Tab mit :q

  6. schließen

Ich persönlich benutze neuere Puffer - nur Tabs. Lesen Sie mehr über sie in :help tabpage

    
Kostya 15.05.2012 13:29
quelle

Tags und Links