Voglio aggiungere *
alla fine di ogni riga in Vim.
Ho provato il codice senza successo
:%s/\n/*\n/g
Voglio aggiungere *
alla fine di ogni riga in Vim.
Ho provato il codice senza successo
:%s/\n/*\n/g
Risposte:
:%s/$/\*/g
dovrebbe funzionare. Così dovrebbe, :%s/$/*/g
come sottolinea correttamente MrWiggles .
g
bandiera non è necessaria.
Anche più breve del comando: search:
:%norm A*
Questo è ciò che significa:
% = for every line
norm = type the following commands
A* = append '*' to the end of current line
I*
piuttosto che 0i*
ti salverà una sequenza di tasti.
:
, questo pre-riempirà il comando con il :'<,'>
quale è possibile effettuare:'<,'>norm A*
I
invece -:%norm I*
Anche:
:g/$/norm A*
Anche:
gg<Ctrl-v>G$A*<Esc>
g
è un global
comando che fa qualcosa con ogni riga corrispondente. $
corrisponde a ogni riga. Potrebbe anche essere ^
o .*
. norm esegue i comandi che normalmente si utilizzano in modalità comando. Quindi A*
significa aggiungere *
alla fine della riga.
Penso che usare la modalità di blocco visivo sia un metodo migliore e più versatile per affrontare questo tipo di cose. Ecco un esempio:
This is the First line.
This is the second.
The third.
Per inserire "Hello world". (spazio + appunti) alla fine di ciascuna di queste righe:
Il risultato è:
This is the First line. Hello world.
This is the second. Hello world.
The third. Hello world.
(esempio da Vim.Wikia.com )
jj
puoi premere G
per spostarti sull'ultima riga. Ciò è utile in file di grandi dimensioni, dove j
non è pratico premere fino a quando non si preme l'ultima riga.
g
Alla fine non ti serve davvero . Quindi diventa:
:%s/$/*
O se vuoi solo il *
alla fine di, dire le righe 14-18:
:14,18s/$/*
o
:14,18norm A*
... e per anteporre (aggiungere l'inizio di) ogni riga con *,
%s/^/*/g
Un'opzione è:
:g/$/s//*
Questo troverà ogni ancoraggio di fine linea e lo sostituirà con *
. Dico "sostituto" ma, in realtà, è più un'appendice poiché l'ancoraggio è una cosa speciale piuttosto che un personaggio normale. Per ulteriori informazioni, consultare Potenza di g - Esempi .
:% S / \ n / * \ r / g
Il tuo primo è corretto altrove, ma Vim deve avere una gestione newline diversa per qualche motivo.
:s///
,\n
corrisponde ad un carattere nullo. La sezione:help sub-replace-special
è rilevante.