Come posso usare un numero di riga per copiare una riga in cui si trova il mio cursore?


20

Molte volte mi trovo in una situazione simile a questa:

1. <Line 1>
2. <Line 2>
3. <Line 3>
4. <Cursor is here>
5. <I want to copy line 1 here>

Una soluzione semplice è mm:1<CR>yy`mp- ovvero, tracciare un segno alla linea 4, andare alla linea 1, copiarlo, tornare al segno e incollare.

Esiste una soluzione più breve / più fluida a questo? Lo faccio abbastanza spesso che sono felice di fare una mappatura per questo.

Risposte:


23

Sembra un caso per ex copy ( :help :coo :help :t):

:1t4

oppure, usando la posizione del cursore:

:1t.

Questo non copia la linea nel registro yank, che potrebbe essere o meno quello che vuoi.


Non uso abbastanza ex copia, buon suggerimento.
jecxjo,

10

Potresti accorciarlo non usando i segni e strappare direttamente la linea.

:1y<CR>p

La versione del comando di yank richiede {range}quindi di selezionare una linea o un gruppo di linee.

Inoltre, il valore dell'intervallo può essere assoluto o relativo. Le linee sopra il cursore sono a distanza negativa e sotto sono positive. Quindi strattonare due righe sopra è :-2ye strattonare due righe sotto è :+2y.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.