Perché p ha incollato una riga copiata dopo la riga corrente, anziché dopo la parola corrente?


12

Supponiamo che io abbia le seguenti quattro righe:

line1
line2
line3
line4

Ora se vado a line1fare una yycopia che copia la linea e poi vado all'inizio line3e faccio un incolla usando 'p', otterrei

...
line3
line1
line4
....

Perché è stato incollato line1dopo line3in una nuova linea?

La mia iniziale però era perché il carattere newline $ era associato a line3 e che quando ho premuto pvim ho considerato line3$come una sola parola, quindi è stato incollato dopo line3$. Tuttavia sembra che la mia comprensione fosse sbagliata. Perché se lo faccio line3 $e poi faccio un pall'inizio della riga ottengo lo stesso risultato.

Perché pcreare una nuova riga e incollarla in una nuova riga dopo line3?

Risposte:


21

Quando hai eliminato la linea usando dd, hai eseguito un'eliminazione lineare .

Il pcomando incolla dopo la posizione del cursore. Poiché il registro predefinito è stato popolato con contenuto a livello di riga, ciò significa che verrà incollato dopo la riga su cui si trova il cursore.

Se invece avessi eliminato il contenuto della riga in modo caratteristico (ad esempio, 0D), il registro sarebbe stato in modo caratteristico e quindi incollato dopo il carattere su cui si trovava il cursore.

In generale, il comportamento dovrebbe seguire ciò che ci si aspetta da un delete / yank and paste. Tuttavia, è possibile modificare l' intensità-wise di un registro usando getreg () / setreg () .

Fai attenzione, comunque. Dato il tuo esempio iniziale, semplicemente cambiando il registro in modo caratteristico non rimuovi la nuova riga che faceva parte dell'eliminazione. Cambia solo il modo in cui si verifica la pasta.


Per consigli sullo scenario specifico di eliminazione di un'intera riga ma incollandola in modo caratteristico, vedere questo post .

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.