Come posso inserire del testo alla fine di un gruppo di righe?


16

Diciamo che avevo un blocco di testo ...

Lorem ipsum
Lorem ipsum dolor
Lorem ipsum dolor sit
Lorem ipsum dolor sit amet

... e volevo inserire un .alla fine di ogni riga. Quale sarebbe l'approccio migliore per raggiungere questo obiettivo?

Risposte:


12

Faccio quanto segue per aggiungere testo a più righe:

  • <c-V> - Entra in modalità Visual Block.
  • Utilizzare j/ kper selezionare le linee.
  • $ - Sposta il cursore sull'ultimo carattere.
  • A - Entra in modalità inserimento dopo l'ultimo carattere.
  • Inserisci il testo desiderato.
  • <Esc> - Uscire dalla modalità di inserimento e terminare l'appendice blocco.

Rispetto alla scrittura :normdopo la selezione ci sono ancora meno pressioni dei tasti, ma il vero motivo per cui lo uso è perché è più istintivo per me lavorare sulla modalità Visual Block per questo tipo di modifiche.


Molto utile combinato con incollare una colonna di testo .
Paul Rougieux,

8

Alla prima riga basta digitare: 4:norm A.

4e :crea un intervallo per te, quindi norm A.aggiunge il punto a ciascuna riga

Un'altra soluzione per paragrafi più lunghi potrebbe essere: Vip<C-v>$A.<Esc>

Il primo passo è selezionare il paragrafo con cui Vipsi passa alla modalità blocco visivo e si sposta il cursore alla fine di ogni riga con $quindi si aggiunge il .a ciascuna riga con A.e si passa alla modalità normale con <Esc>per vedere la modifica da applicare a ciascuna riga .


Cos'è questo :Acomando? Non l'ho trovato tramite:h :A
Peter Rincker,

colpa mia. In realtà non ha testato la risposta. Lo sto aggiornando. Dovrebbe usare il normale comando proprio come la risposta di @Kritixi Lhitos
rbernabe il

Due personaggi in meno di quanto 4:norm A.sarebbe4:s/$/.
Philippos il

3

Per prima cosa puoi selezionarli visivamente usando Ve poi usare i tasti di spostamento per selezionare l'intero testo (o se il testo fosse strettamente un paragrafo che potresti fare [iniziando dalla prima riga] V}). E quindi digitare :. Questo dovrebbe far apparire qualcosa come :'<,'>nella riga di comando.

:'<'>normal A.

Questo viene eseguito normal A.sulle linee selezionate. normal A.viene eseguito A.come sequenze di tasti in modalità normale. Questo Apende .a alla fine di ciascuna delle linee selezionate.


3

Se vuoi aggiungere un punto alla fine di tutte le righe:

:%norm A.

oppure puoi usare la ricerca e sostituire:

:%s/$/./

% è l'intero file, $ è la fine della riga


Poiché @ vim.ryan ha richiesto un blocco di testo anziché l'intero file, :1,4s/$/./ che sostituisce l'ultimo carattere con un punto sulle righe da uno a quattro incluso.
rjt

1

Per renderlo un po 'più generale, è possibile registrare una macro su una singola riga, quindi riprodurla su ciascuna riga nell'intervallo selezionato visivamente.

Registrare una macro in un registro (il registro q in questo esempio):

qqA.<Esc>q

È quindi possibile selezionare visivamente le linee su cui si desidera operare:

Vip

E quindi riprodurre la macro su ogni riga (l'intervallo verrà riempito automaticamente):

:'<,'>norm @q
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.