Per esempio
Come posso strappare e incollare la Linea 4 solo sulla Linea 12 senza dover spostare il cursore sulla Linea 4?
Per esempio
Come posso strappare e incollare la Linea 4 solo sulla Linea 12 senza dover spostare il cursore sulla Linea 4?
Risposte:
Se il cursore è già sulla riga 12, quindi un semplice
: 4y P
lo fa per me.
x
? Quando provo :4x
ottengo E140: Use ! to write partial buffer
. Grazie!
:4d
Che ne dici di questo: il cursore è sulla linea 11, sei in modalità "vi".
:4co.<return>
Apparentemente puoi farlo anche con uno schema:
:/^Yank/co.<return>
Puoi usare "mo" (sposta) invece di "co" (copia) per spostare semplicemente la linea, invece di yank e put.
:4t.
Prova questo:
:4,4y
P
Altri hanno già menzionato il metodo più diretto per farlo, che è :4y
, ma voglio aggiungere due note a riguardo che potrebbero essere utili:
Uno, se digiti :help range
, imparerai tutto sull'uso degli intervalli da applicare ai comandi di stile Ex. MOLTO utile in molti casi e molto più versatile rispetto all'utilizzo dei numeri di riga. Ad esempio, se si desidera strappare la prima riga che inizia con "yank" dopo l'inizio del documento (anche se si trova sulla prima riga), utilizzare :0/^yank/y
. La parte più potente degli intervalli è la possibilità di combinarli, ad esempio :./^Chapter/+50?Pete?d
significa "Trova la riga successiva per iniziare con la parola Chapter (ricerca in avanti dalla riga corrente), quindi saltare in avanti di 50 righe e cercare all'indietro la parola Pete, ed elimina la prima riga in cui la trovi. " Solo che in realtà non sposta il cursore, fa solo quello che gli dici.
(Ho usato questo tipo di specifica di intervallo per automatizzare la creazione di documentazione complicata che implica la ricerca del nome della funzione sotto il cursore, quindi la ricerca della riga successiva che diceva "Descrizione" e lo trascinavo in un registro specifico ... ecc.)
L'altro consiglio è che dovresti sapere sul salto. Digita :help jump-motions
per conoscerlo a fondo, ma il modo in cui si collega qui è che puoi saltare alla linea 4, strattonarlo e poi INVIO con 4Gyy''
(o usare i backtick anziché gli apostrofi per tornare alla tua posizione iniziale esatta, piuttosto che solo la stessa LINEA hai iniziato a.)
Più breve:
:1t.
copia la prima riga sotto la corrente.
Con intervalli:
:1,4t.
copia le righe da 1 a 4 (incluse) al di sotto della corrente.
Possibile anche con numeri di riga relativi:
:-1t.
copia la riga precedente sotto la corrente.
Nel tuo esempio :4t-1
, copia la quarta riga sotto la riga desiderata.
Nota: :t
è sinonimo del :co[py]
comando.