VimCS: Editing: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
nessun oggetto della modifica
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 dos, ovvero quei simpatici <code>^M</code> - ''':%s/\r/''' <br/>
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>ctrl-v</code> e <code>ctrl-m</code>, quindi aggiungere <code>//g</code> e fare la sostituzione: <br/>
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/>
: ''':%s/^M//g'''
'''<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:
: ''':%s/^.\{-}\zehttp//g'''
'''<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
: ''':s/\(^[0-9]\+\)\. /\1\t/'''
'''<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:
: ''':%s/\s\+$//'''
'''<nowiki>:</nowiki>%s/\s\+$//'''


cerca soltanto:
cerca soltanto:
: '''/\s\+$'''
'''/\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 (salta righe vuote) - '''ctrl-v''' <br/>
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/>


scorciatoie: <br/>
inserisce - '''>>'''
'''>>''' (inserisce) <br/>
toglie - '''<<'''
'''<<''' (toglie) <br/>
inserisce su tre righe - '''3>>'''
'''=''' (toglie)
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 - '''ctrl-r'''
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 ctrl-d'''
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/>
'''Ctrl-x''' <br/>
scorrimento tra i risultati - '''ctrl-n''' / '''ctrl-p''' <br/>
scorrimento tra i risultati - '''Ctrl-n''' / '''Ctrl-p''' <br/>
annulla - '''ctrl-e''' <br/>
annulla - '''Ctrl-e''' <br/>
accetta parola selezionata - '''ctrl-y''' (oppure Enter)
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 ctrl-c/ctrl-x/ctrl-v. <br/>
* 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-gtk
* vim-athena
* vim-athena
271

contributi

Menu di navigazione