|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
[G?Vim?] Trucchi e problemi
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Iscritto!
![]() ![]() ![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
il titolo ha una particolarità... chi l'ha notata?
![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#4 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
1 - sei un grande!
2 - un mio collega aveva un file xml contenente un milioncino di record del tipo: Codice:
<data> <Number>0</Number> <aaa>aaa</aaa> <bbb>bbb</bbb> <ccc>ccc<cccb> ..... </data> Si e' poi reso conto che tutti i valori in <Number> dovevano essere incrementati di uno. E lo stava facendo a mano. Il suggerimento e' stato: Codice:
:1,$g/^<Number>.*$/s/[0-9][0-9]*/\=(submatch(0)+1)
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Quote:
![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Devi pagarmi
![]() Intanto aggiungo un trucchetto semplice semplice per i fruitori di questo meraviglioso sito di cui non ricordo il nome (dai, scherzo, e' scritto in alto): spesso alcuni postatori folli chiedono aiuto su una porzione di codice, e semplicemente lo copiano ed incollano nel post, senza includerlo nell'apposito tag. Il risultato e' che il codice perde tutta l'indentazione e molti si rifiutano di leggere una cosa del genere. Il problema e' facilmente risolvibile incollando il codice in gvim e scrivendo Codice:
=G
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#9 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
Ragazzi ve lo dico prima. Tutti questi bei problemini di cui state discutendo qui, saranno oggetto di un futuro contest.
E senza riri chisà... ![]() |
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Codice:
:g/^$/d In command mode o* va una linea sotto la corrente e permette l'inserimento da subito. Invece O* porta tutto sotto di una linea e pertmette l'inserimento una linea sopra la corrente. Spero come inizio non sia deludente ![]() * la lettera o minuscola/maiuscola
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
oppure abbiamo la sostituzione di pattern
Codice:
%s/<pattern old>/<pattern new>/gc O anche la semplice ricerca id termine con Codice:
/termine
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go Ultima modifica di The_ouroboros : 31-01-2013 alle 12:40. |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
E' una cagata, ma lo uso spesso.
Per scambiare due righe tra loro: Codice:
ddp
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
Si, lo conoscevo ma hai fatto piu' che benissimo a riportare questo trucco, a favore di chi passera' di qui. Non mi hai ancora pagato, pero' (so che hai una lista da qualche parte che non vuoi condividere. Voglio quella
![]() Visto che ci siamo, torniamo sul copy and paste: vi mette a disposizione 26 +1 blocchi per appunti. L'1 e' quello anonimo, in cui copi se non specifichi nient'altro. Altrimenti puoi riferirti ad un blocco appunti ben specifico, il quale e' identificato con una lettera dell'alfabeto. Riprendendo quello che ha detto The_ouroboros, con Codice:
yy copy una riga. Si puo' anteporre il nome del buffer/blocco appunti mediante il carattere ", per esempio: Codice:
"aY Questo e' comodissimo quando, per esempio, si va in giro per il codice a cercare i pezzi di testo da incollare poi da un'altra parte. Invece che spostarsi continuamente avanti e indietro, si puo' copiare ogni parte in un buffer diverso e poi andare a destinazione e copiarli tutti con Codice:
"ap Si ricorda che ai comandi puo' essere anteposto un numero, per esempio: Codice:
"c100Y
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
Quote:
![]() Diciamo che io combino le mie conoscenze di awk+perl+grep+sed e le riverso in vi. E molto uso le regexp. Sono un sysadmin molto strano, lo ammetto. ![]()
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
|
I comandi di vi si possono facilmente combinare fra di loro, offrendo una notevole flessibilita'.
Come esempio e' necessario introdurre i mark. I mark sono delle "bandierine" che si possono mettere nel testo per tornare velocemente in una posizione prefissata. Molti editor l'hanno, ma occorre staccarsi dalla tastiera e usare il mouse. In vi sono integrati. Se si vuole marcare una linea, basta il comando m seguito dal nome del mark (lettera a...z). Esempio: Codice:
ma Codice:
'a Supponiamo ora di voler copiare un blocco di linee senza volerle contare, normalmente marco l'inizio con ma, poi cerco la fine del blocco e lo marco con mm. Dopo di che con 'a torno all'inizio del blocco e poi lo copio con Codice:
y'm Codice:
"ay'm :'a,'ms/questo/quello/g
__________________
In God we trust; all others bring data |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
dimenticavamo il graal di non muoversi troppo con le dita
Codice:
h, j, k ed l (sinistra, giù, su, destra).
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#18 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
![]() ![]() ![]() |
![]() |
![]() |
![]() |
#19 |
Senior Member
Iscritto dal: May 2007
Città: Milano
Messaggi: 7103
|
come va la tua esplorazione di vi?
__________________
Apple Watch Ultra + iPhone 15 Pro Max + Rog Ally + Legion Go |
![]() |
![]() |
![]() |
#20 |
Bannato
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
|
No, per il momento, fra lavoro e contest, non posso occuparmene. Ma questo thread mi tornerà utilissimo in futuro.
Grazie di cuore a tutti voi ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:34.