3 581
contributi
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:// | 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 # < | '''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>''' | ||
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 - ''' | 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 | |||
[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]] |
contributi