271
contributi
mNessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 14: | Riga 14: | ||
intero file maiuscolo - '''gggUG''' | intero file maiuscolo - '''gggUG''' | ||
sostituzione prima corrispondenza sulla riga - ''':s/vecchio/nuovo''' <br/> | sostituzione prima corrispondenza sulla riga - ''':s/vecchio/nuovo/''' <br/> | ||
sostituzione su tutta la riga - ''':s/vecchio/nuovo/g <br/> | sostituzione su tutta la riga - ''':s/vecchio/nuovo/g <br/> | ||
sostituzione con richiesta di conferma - ''':s/vecchio/nuovo/gc''' <br/> | sostituzione con richiesta di conferma - ''':s/vecchio/nuovo/gc''' <br/> | ||
Riga 21: | Riga 21: | ||
sostituzione in tutti i buffer - ''':bufdo %s/vecchio/nuovo/ge | update''' | sostituzione in tutti i buffer - ''':bufdo %s/vecchio/nuovo/ge | update''' | ||
elimina le terminazioni di riga in stile | elimina le terminazioni di riga in stile DOS, ovvero quei simpatici <code>^M</code> - ''':%s/\r/''' <br/> | ||
se non fossero solo a fine riga, digitare <code>:%s/</code> seguito da <code> | se non fossero solo a fine riga, digitare <code>:%s/</code> seguito da <code>Ctrl-v</code> e <code>Ctrl-m</code>, quindi aggiungere <code>//g</code> e fare la sostituzione: <br/> | ||
'''<nowiki>:</nowiki>%s/^M//g''' | |||
dato un file con tante righe nella forma di ''foo bar baz http://bla'', | dato un file con tante righe nella forma di ''foo bar baz <nowiki>http://bla</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''' | |||
data una riga nella forma '11. foo' sostituisce il punto con un tab | data una riga nella forma '11. foo' sostituisce il punto con un tab | ||
'''<nowiki>:</nowiki>s/\(^[0-9]\+\)\. /\1\t/''' | |||
cancella tutto ciò che c'è dopo le virgolette | |||
'''<nowiki>:</nowiki>%s/".*//''' | |||
cancella spazi non voluti a fine riga (trailing whitespace); | cancella spazi non voluti a fine riga (trailing whitespace); | ||
\s cerca gli spazi bianchi (spazio o tab) e \+ cerca una o più occorrenze: | \s cerca gli spazi bianchi (spazio o tab) e \+ cerca una o più occorrenze: | ||
'''<nowiki>:</nowiki>%s/\s\+$//''' | |||
cerca soltanto: | cerca soltanto: | ||
'''/\s\+$''' | |||
seleziona e inserisce un cancelletto all'inizio di ogni riga selezionata | |||
'''Ctrl-v I # <esc>''' | |||
'''<nowiki>:</nowiki>help v_b_I''' | |||
manda a capo in corrispondenza di ogni tag <br> | |||
'''<nowiki>:</nowiki>g,<br>,s,<br>,<br>\r,g''' | |||
in una riga con molteplici 'foo' sostituisce solo il secondo | |||
'''<nowiki>:</nowiki>s/\(.*\)foo/\1bar/''' | |||
ordina testo alfabeticamente - ''':sort''' | ordina testo alfabeticamente - ''':sort''' | ||
elimina righe uguali - ''':sort u''' | |||
mostra tre righe di un testo (la 3, 45, 180) per un rapido confronto | |||
'''<nowiki>:</nowiki>3p|45p|180p''' | |||
Riga 52: | Riga 76: | ||
inizia selezione - '''v''' <br/> | inizia selezione - '''v''' <br/> | ||
seleziona intera riga - '''V''' <br/> | seleziona intera riga - '''V''' <br/> | ||
seleziona blocco ( | seleziona blocco (per colonne) - '''Ctrl-v''' <br/> | ||
seleziona tutto - '''ggVG''' <br/> | seleziona tutto - '''ggVG''' <br/> | ||
Riga 58: | Riga 82: | ||
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 | 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 | 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/> | muovere il cursore verso l'alto; perciò i comandi per l'ipotetica situazione sono: <br/> | ||
'''Vjok''' | '''Vjok''' | ||
Riga 77: | Riga 101: | ||
Possiamo quindi inserire nel documento qualsiasi output della shell: <br/> | Possiamo quindi inserire nel documento qualsiasi output della shell: <br/> | ||
<nowiki>:</nowiki>r !ls | '''<nowiki>:</nowiki>r !ls''' | ||
In caso servisse una shell con piena funzionalità: <br/> | In caso servisse una shell con piena funzionalità: <br/> | ||
<nowiki>:</nowiki>shell | '''<nowiki>:</nowiki>shell''' | ||
Si noti che è un sotto processo di Vim, ricordarsi dunque di uscire una volta finito :) | Si noti che è un sotto processo di Vim, ricordarsi dunque di uscire una volta finito :) | ||
Riga 93: | Riga 117: | ||
inserisce un'indentazione sulla terza riga - ''':3>''' <br/> | inserisce un'indentazione sulla terza riga - ''':3>''' <br/> | ||
inserisce - '''>>''' | |||
'''>>''' | toglie - '''<<''' | ||
'''<<''' | inserisce su tre righe - '''3>>''' | ||
'''=''' | toglie su tre righe - '''3<<''' | ||
inserisce sulla terza riga partendo da dove è posizionato il cursore - '''2j>>''' | |||
rimuove indentazione all'intero file - '''gg=G''' | |||
Riga 106: | Riga 133: | ||
incolla testo tagliato sotto la riga dove è il cursore - '''p''' <br/> | incolla testo tagliato sotto la riga dove è il cursore - '''p''' <br/> | ||
incolla testo tagliato sopra la riga dove è il cursore - '''P''' | |||
mette la riga sottostante in coda alla corrente - '''J''' | mette la riga sottostante in coda alla corrente - '''J''' | ||
Riga 141: | Riga 169: | ||
inserisce commento (#) ad inizio riga - ''':s/^/#/''' | inserisce commento (#) ad inizio riga - ''':s/^/#/''' | ||
== Annulla, ripeti, cronologia e ricerca == | == Annulla, ripeti, cronologia e ricerca == | ||
Riga 147: | Riga 176: | ||
undo di una riga - '''U''' | undo di una riga - '''U''' | ||
redo - ''' | redo - '''Ctrl-r''' | ||
Riga 162: | Riga 191: | ||
mostra la history di ricerca history con comandi selezionabili - '''q?''' (precedente) <br/> | mostra la history di ricerca history con comandi selezionabili - '''q?''' (precedente) <br/> | ||
mostra la lista dei comandi interni che iniziano per a - ''':a | mostra la lista dei comandi interni che iniziano per a - ''':a Ctrl-d''' | ||
La ricerca funziona come per tante altre applicazioni: <br/> | La ricerca funziona come per tante altre applicazioni: <br/> | ||
Riga 177: | Riga 206: | ||
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/> | ||
scorrimento tra i risultati - ''' | scorrimento tra i risultati - '''Ctrl-n''' / '''Ctrl-p''' <br/> | ||
annulla - ''' | annulla - '''Ctrl-e''' <br/> | ||
accetta parola selezionata - ''' | accetta parola selezionata - '''Ctrl-y''' (oppure Enter) | ||
Riga 188: | Riga 217: | ||
* PRIMARY: il testo selezionato e incollato tramite il mouse, ovvero seleziona con il tasto 1 | * 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). | (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 | * 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] | ||
Ovviamente con il mouse non è prevista una funzione che taglia, ma questa può comunque funzionare ad esempio tra due sessioni diverse di Vim. | Ovviamente con il mouse non è prevista una funzione che taglia, ma questa può comunque funzionare ad esempio tra due sessioni diverse di Vim. | ||
: PRIMARY: <br/> | :PRIMARY: <br/> | ||
copia - '''"*y''' <br/> | copia - '''"*y''' <br/> | ||
taglia - '''"*x''' <br/> | taglia - '''"*x''' <br/> | ||
Riga 201: | Riga 230: | ||
taglia - '''"+x''' <br/> | taglia - '''"+x''' <br/> | ||
incolla - '''"+p''' | incolla - '''"+p''' | ||
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. | |||
'''*''' (asterisco) e '''+''' (più) fanno parte dei registri di selezione e rilascio del testo da e verso la | |||
clipboard di Xorg. | |||
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. | |||
cancella riga - '''"_dd''' | |||
cancella tre righe - '''"_3dd''' | |||
Per approfondire e sapere di più sugli altri sette registri consultare la documentazione: | |||
'''<nowiki>:</nowiki>help "''' | |||
'''<nowiki>:</nowiki>help :registers''' | |||
Per evitare di avere dipendenze extra che riguardano Xorg, la versione di Vim presente in Debian è compilata senza il supporto alla clipboard, lo si può verificare con: <br/> | Per evitare di avere dipendenze extra che riguardano Xorg, la versione di Vim presente in Debian è compilata senza il supporto alla clipboard, lo si può verificare con: <br/> | ||
Riga 210: | Riga 255: | ||
per ottenere questo si dovrà installare una delle interfacce grafiche a scelta tra: <br/> | per ottenere questo si dovrà installare una delle interfacce grafiche a scelta tra: <br/> | ||
* vim-gtk | |||
* vim-gnome | * vim-gnome | ||
* vim-athena | * vim-athena |
contributi