VimCS: Editing: differenze tra le versioni

m
rimuove falso positivo in ricerca broken link
Nessun oggetto della modifica
m (rimuove falso positivo in ricerca broken link)
 
(12 versioni intermedie di 2 utenti non mostrate)
Riga 18: Riga 18:
sostituzione con richiesta di conferma - ''':s/vecchio/nuovo/gc''' <br/>
sostituzione con richiesta di conferma - ''':s/vecchio/nuovo/gc''' <br/>
sostituzione in tutto il documento - ''':%s/vecchio/nuovo/g''' <br/>
sostituzione in tutto il documento - ''':%s/vecchio/nuovo/g''' <br/>
sostituzione in tutto il documento con richiesta di conferma (case insensitive) - ''':%s/vecchio/nuovo/gci''' <br/>


sostituzione in tutti i buffer - ''':bufdo %s/vecchio/nuovo/ge | update'''
sostituzione in tutti i buffer - ''':bufdo %s/vecchio/nuovo/ge | update'''
Riga 26: Riga 27:




dato un file con tante righe nella forma di ''foo bar baz <nowiki>http://bla</nowiki>'',
dato un file con tante righe nella forma di ''foo bar baz <nowiki>http://indirizzo.di.esempio</nowiki>'',
elimina i caratteri prima di 'http' per ogni riga e nell'intero documento:
elimina i caratteri prima di 'http' per ogni riga e nell'intero documento:
'''<nowiki>:</nowiki>%s/^.\{-}\zehttp//g'''
'''<nowiki>:</nowiki>%s/^.\{-}\zehttp//g'''
Riga 48: Riga 49:


seleziona e inserisce un cancelletto all'inizio di ogni riga selezionata
seleziona e inserisce un cancelletto all'inizio di ogni riga selezionata
'''Ctrl-v I # <esc>'''
'''Ctrl-v I # <Esc>'''


'''<nowiki>:</nowiki>help v_b_I'''
 
Inserisce contenuto di un registro all'inizio di ogni riga selezionata.
Data una lista di voci come segue:
* foo uno
* due
* tre
* quattro
* cinque
* sei
* sette
 
supponiamo di voler inserire 'foo', compreso lo spazio che segue, all'inizio delle successive quattro righe.
 
copiamo: '''vely''' <br/>
selezioniamo l'inizio delle altre righe: '''j Ctrl-v 3j''' <br/>
passiamo alla modalità inserimento visuale: '''I''' <br/>
incolliamo e torniamo alla modalità comando: '''Ctrl-r " <Esc>'''
 
La sequenza completa è dunque: '''velyj Ctrl-v 3jI Ctrl-r " <Esc>''' <br/>
Appare macchinoso ma è un'ottima alternativa alla modalità comando quando c'è bisogno di copiare stringhe complesse che, a causa di caratteri speciali e necessità di escape, risulterebbero scomode da inserire con il classico '''Ctrl-v :'<,'>s/^/foo /'''
 
'''<nowiki>:</nowiki>help v_b_I''' <br/>
'''<nowiki>:</nowiki>help i_CTRL-R'''




manda a capo in corrispondenza di ogni tag <br>
manda a capo in corrispondenza di ogni tag <br>
'''<nowiki>:</nowiki>g,<br>,s,<br>,<br>\r,g'''
'''<nowiki>:g,<br>,s,<br>,<br>\r,g</nowiki>'''




Riga 68: Riga 91:
mostra tre righe di un testo (la 3, 45, 180) per un rapido confronto
mostra tre righe di un testo (la 3, 45, 180) per un rapido confronto
'''<nowiki>:</nowiki>3p|45p|180p'''
'''<nowiki>:</nowiki>3p|45p|180p'''
Alcuni semplici esempi di cosa si può fare con ex:
cancella terza riga di un file
<pre>$ ex file.txt <<< $'3d\nw'</pre>
cancella righe commentate
<pre>$ ex file.txt <<< $'g/^#/d\nw'</pre>
dato un file contenente una sequenza di numeri (uno per riga) cancella tutto tranne 1 e 7
<pre>$ printf '%s\n' 1 2 3 4 5 6 7 > file.txt; ex file.txt <<< $'v/[17]/d\nw'</pre>
''v'' è l'opposto di ''g'', come ''grep -v''




Riga 80: Riga 116:




In caso di necessità è possibile invertire la direzione del cursore durante la selezione, se
In caso di necessità è possibile invertire la direzione del cursore durante la selezione, se selezioniamo alcune righe dall'alto verso il basso e vogliamo in seguito selezionarne altre sopra, basterà premere '''o''' e il cursore si sposterà alla prima riga della selezione corrente quindi muovere il cursore verso l'alto; perciò i comandi per l'ipotetica situazione sono: <br/>
selezioniamo alcune righe dall'alto verso il basso e vogliamo in seguito selezionarne altre
sopra, basterà premere '''o''' e il cursore si sposterà alla prima riga della selezione corrente quindi
muovere il cursore verso l'alto; perciò i comandi per l'ipotetica situazione sono: <br/>
'''Vjok'''
'''Vjok'''


Riga 92: Riga 125:
'''<nowiki>:</nowiki>'<,'>w nome_file'''
'''<nowiki>:</nowiki>'<,'>w nome_file'''


Allacciandosi al discorso, si può invece inserire il testo di un altro file sulla riga sotto il
Allacciandosi al discorso, si può invece inserire il testo di un altro file sulla riga sotto il cursore: <br/>
cursore: <br/>
'''<nowiki>:</nowiki>r nome_file'''
'''<nowiki>:</nowiki>r nome_file'''




Il punto esclamativo è un attivatore per comandi esterni, seguito da un comando apre una shell in una porzione di finestra e lo esegue: <br/>
Il punto esclamativo è un attivatore per comandi esterni, seguito da un comando apre una [[shell]] in una porzione di finestra e lo esegue: <br/>
'''<nowiki>:</nowiki>!ls'''
'''<nowiki>:</nowiki>!ls'''


Riga 153: Riga 185:
cancella tutte le righe dello schermo sotto il cursore - '''dL''' <br/>
cancella tutte le righe dello schermo sotto il cursore - '''dL''' <br/>
cancella dalla riga in cui si trova il cursore alla fine del documento - '''dG''' <br/>
cancella dalla riga in cui si trova il cursore alla fine del documento - '''dG''' <br/>
cancella dalla riga in cui si trova il cursore all'inizio del documento - '''dg''' <br/>
cancella dalla riga in cui si trova il cursore all'inizio del documento - '''dgg''' <br/>
cancella intero documento - '''ggdG''' <br/>
cancella intero documento - '''ggdG''' <br/>
cancella parola e passa alla modalità inserimento - '''cw''' <br/>
cancella parola e passa alla modalità inserimento - '''cw''' <br/>
Riga 169: Riga 201:


inserisce commento (#) ad inizio riga - ''':s/^/#/'''
inserisce commento (#) ad inizio riga - ''':s/^/#/'''


== Annulla, ripeti, cronologia e ricerca ==
== Annulla, ripeti, cronologia e ricerca ==
Riga 202: Riga 233:
cerca in avanti - '''N'''
cerca in avanti - '''N'''


cerca parola in avanti (case insensitive) - '''/parola\c''' <br/>
cerca parola indietro (case insensitive) - '''?parola\c''' <br/>
numero di occorrenze di una parola - ''':%s/parola//gn'''
disabilita l'evidenziazione delle parole dopo la ricerca - ''':noh'''


== Autocompletamento ==
== Autocompletamento ==
In modalità inserimento e sostituzione è possibile ottenere una lista di parole usate
In modalità inserimento e sostituzione è possibile ottenere una lista di parole usate precedentemente. <br/>
precedentemente. <br/>
'''Ctrl-x''' <br/>
'''Ctrl-x''' <br/>
scorrimento tra i risultati - '''Ctrl-n''' / '''Ctrl-p''' <br/>
scorrimento tra i risultati - '''Ctrl-n''' / '''Ctrl-p''' <br/>
Riga 213: Riga 249:


== Clipboard ==
== Clipboard ==
Esistono tre tipi differenti di selezione: PRIMARY, SECONDARY, e CLIPBOARD, ma solo due vengono
Esistono tre tipi differenti di selezione: PRIMARY, SECONDARY, e CLIPBOARD, ma solo due vengono utilizzate. <br/>
utilizzate. <br/>
* PRIMARY: il testo selezionato e incollato tramite il mouse, ovvero seleziona con il tasto 1 (sinistro, o destro per i mancini) e incolla con il tasto 2 (centrale).
* PRIMARY: il testo selezionato e incollato tramite il mouse, ovvero seleziona con il tasto 1
* CLIPBOARD: il testo copiato o tagliato e incollato tramite i menù delle applicazioni o le classiche scorciatoie Ctrl-c / Ctrl-x / Ctrl-v. <br/>
(sinistro, o destro per i mancini) e incolla con il tasto 2 (centrale).
* CLIPBOARD: il testo copiato o tagliato e incollato tramite i menu delle applicazioni o le classiche scorciatoie Ctrl-c/Ctrl-x/Ctrl-v. <br/>
[http://www.freedesktop.org/wiki/Specifications/ClipboardsWiki Specifiche Freedesktop]
[http://www.freedesktop.org/wiki/Specifications/ClipboardsWiki Specifiche Freedesktop]


Riga 233: Riga 267:
Allo stesso modo, per copiare una riga senza prima selezionarla si useranno '''"*yy''' e '''"+yy'''
Allo stesso modo, per copiare una riga senza prima selezionarla si useranno '''"*yy''' e '''"+yy'''


Il '''"''' (virgolette) attiva i registri, una sorta di clipboard dove immagazzinare porzioni di testo.
Il '''"''' (virgolette) attiva i registri, una sorta di clipboard dove immagazzinare porzioni di testo.<br/>
'''*''' (asterisco) e '''+''' (più) fanno parte dei registri di selezione e rilascio del testo da e verso la
'''*''' (asterisco) e '''+''' (più) fanno parte dei registri di selezione e rilascio del testo da e verso la clipboard di Xorg.
clipboard di Xorg.
Un altro registro utile è il buco nero, il testo non viene salvato nella clipboard.
Un altro registro utile è il buco nero, il testo non viene salvato nella clipboard.
Un po' come usare /dev/null in una shell, utile per cancellare senza coinvolgere gli altri registri.
Un po' come usare /dev/null in una shell, utile per cancellare senza coinvolgere gli altri registri.


cancella riga - '''"_dd'''
cancella riga - '''"_dd''' <br/>
cancella tre righe - '''"_3dd'''
cancella tre righe - '''"_3dd'''


Per approfondire e sapere di più sugli altri sette registri consultare la documentazione:
Per approfondire e sapere di più sugli altri sette registri consultare la documentazione: <br/>
'''<nowiki>:</nowiki>help "'''
'''<nowiki>:</nowiki>help "''' <br/>
'''<nowiki>:</nowiki>help :registers'''
'''<nowiki>:</nowiki>help :registers'''


Riga 258: Riga 291:
* vim-gnome
* vim-gnome
* vim-athena
* vim-athena
[[Categoria: Elaborazione_testi]]
3 581

contributi