Antonio Giovanni Colombo | 0b5926f | 2024-12-03 21:14:45 +0100 | [diff] [blame^] | 1 | =============================================================================== |
| 2 | = Benvenuto alla G u i d a all'Editor V I M - Versione 1.7 = |
| 3 | =============================================================================== |
| 4 | = C A P I T O L O DUE = |
| 5 | =============================================================================== |
| 6 | |
| 7 | Hic Sunt Dracones: Se questa è la prima volta che vi accostate a vim |
| 8 | e preferite iniziare dal capitolo introduttivo, gentilmente immettete |
| 9 | :q<INVIO> e poi iniziate da quello. |
| 10 | |
| 11 | Il tempo necessario per completare questo capitolo è di circa 8-10 |
| 12 | minuti, a seconda del tempo utilizzato per fare delle prove. |
| 13 | |
| 14 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 15 | Lezione 2.1.1: I REGISTRI CON NOME |
| 16 | |
| 17 | |
| 18 | ** Copiare due parole in registri diversi e poi incollarle ** |
| 19 | |
| 20 | 1. Spostate il cursore alla riga qui sotto marcata con ---> |
| 21 | |
| 22 | 2. Andate su una lettera qualsiasi di 'Edward' e battete "ayiw |
| 23 | |
| 24 | MNEMONICO: nel registro(") di nome (a) (y)copia (i)interna (w)parola |
| 25 | |
| 26 | 3. Spostatevi alla parola 'biscotti' (fc o 2fb o $b o /bis<INVIO>) |
| 27 | e battete "byiw |
| 28 | |
| 29 | 4. Andate su una lettera qualsiasi di 'Vince' e battete ciw<C-r>a<ESC> |
| 30 | |
| 31 | MNEMONICO: (c)cambia (i)interna (w)parola con <Contenuto (r)egistro> di nome (a) |
| 32 | |
| 33 | 5. Andate su una lettera qualsiasi di 'dolci' e battete ciw<C-r>b<ESC> |
| 34 | |
| 35 | ---> a) Edward sarà d'ora in poi responsabile della razione di biscotti |
| 36 | b) Come compito, Vince sarà il solo a decidere riguardo ai dolci |
| 37 | |
| 38 | NOTA: Anche una parola cancellata può essere inviata ad un registro, p.es., |
| 39 | "sdiw cancellerà (d) la parola sotto il cursore (iw) e la metterà |
| 40 | nel registro (s) |
| 41 | RIFERIMENTI: Registri :h registers |
| 42 | Registri con nome :h quotea |
| 43 | Movimento :h motion.txt<INVIO> /inner<INVIO> |
| 44 | CTRL-R :h insert<INVIO> /CTRL-R<INVIO> |
| 45 | |
| 46 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 47 | |
| 48 | Lezione 2.1.2: IL REGISTRO DELLE ESPRESSIONI |
| 49 | |
| 50 | |
| 51 | ** Inserire al volo risultati di un calcolo ** |
| 52 | |
| 53 | 1. Spostate il cursore alla riga qui sotto marcata con ---> |
| 54 | |
| 55 | 2. Andate su un punto qualsiasi del numero fornito |
| 56 | |
| 57 | 3. Battete ciw<C-r>=60*60*24<INVIO> |
| 58 | |
| 59 | 4. Sulla riga seguente, entrate in modo Insert e aggiungete |
| 60 | la data di oggi con <C-r>=system('date')<INVIO> |
| 61 | |
| 62 | NOTA: Tutte le chiamate a sistema dipendono dal S.O., p.es., in ambiente |
| 63 | Windows si usa system('date /t') o :r!date /t |
| 64 | |
| 65 | ---> Non ricordo il numero esatto di secondi in un giorno, è 84600? |
| 66 | La data di oggi è: |
| 67 | |
| 68 | NOTA: Lo stesso risultato si può ottenere con :pu=system('date') |
| 69 | o, ancora più brevemente, con :r!date |
| 70 | |
| 71 | RIFERIMENTI: Registro espressioni :h quote= |
| 72 | |
| 73 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 74 | |
| 75 | Lezione 2.1.3: I REGISTRI NUMERATI |
| 76 | |
| 77 | |
| 78 | ** Battere yy e dd per vedere l'effetto sui registri ** |
| 79 | |
| 80 | 1. Spostate il cursore alla riga qui sotto marcata con ---> |
| 81 | |
| 82 | 2. Copiate (yy) la riga stessa e controllate i registri con :reg<INVIO> |
| 83 | |
| 84 | 3. Cancellate la riga che inizia con "0." con "cdd, poi controllate i |
| 85 | registri (Dove vi aspettate sia finita la riga cancellata?) |
| 86 | |
| 87 | 4. Continuate a cancellare ogni riga seguente, controllando ogni volta |
| 88 | con :reg il risultato |
| 89 | NOTA: Dovreste notare che le righe cancellate per prime scendono nella |
| 90 | lista, man mano che vengono aggiunte nuove righe cancellate |
| 91 | 5. Poi incollate (p) i seguenti registri nell'ordine; c, 7, 4, 8, 2.+ |
| 92 | ossia "cp "7p ... |
| 93 | |
| 94 | ---> 0. Questo |
| 95 | 9. dondolante |
| 96 | 8. messaggio |
| 97 | 7. è |
| 98 | 6. in |
| 99 | 5. asse |
| 100 | 4. un |
| 101 | 3. guerresco |
| 102 | 2. segreto |
| 103 | 1. tributo |
| 104 | |
| 105 | NOTA: Le cancellazioni di righe intere (dd) sopravvivono nei registri numerati |
| 106 | molto più a lungo delle copie di righe intere (yy), o delle |
| 107 | cancellazioni che implicano movimenti minori |
| 108 | |
| 109 | RIFERIMENTI: Registri numerati :h quote0 |
| 110 | |
| 111 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 112 | |
| 113 | Lezione 2.1.4: IL FASCINO DELLE MARCATURE |
| 114 | |
| 115 | |
| 116 | ** Evitare di contare le righe di codice ** |
| 117 | |
| 118 | NOTA: Un problema frequente quando si scrivono programmi è spostare numerose |
| 119 | righe di codice. Il metodo seguente evita di dover calcolare numeri di |
| 120 | riga con operazioni tipo "a147d o :945,1091d a o, ancor peggio, |
| 121 | usando prima i<C-r>=1091-945<INVIO> |
| 122 | |
| 123 | 1. Spostate il cursore alla riga qui sotto marcata con ---> |
| 124 | |
| 125 | 2. Andate alla prima riga della funzione e marcatela con ma |
| 126 | |
| 127 | NOTA: La posizione sulla riga NON è importante! |
| 128 | |
| 129 | 3. Spostatevi a fine riga e da qui alla fine del blocco di codice |
| 130 | con $% |
| 131 | |
| 132 | 4. Cancellate il blocco salvandolo nel registro a con "ad'a |
| 133 | |
| 134 | MNEMONICO: nel registro(") di nome (a) mettere la cancellazione (d) dal |
| 135 | cursore fino alla RIGA che contiene il marcatore (') (a) |
| 136 | |
| 137 | 5. Incollare il blocco the le righe BBB e CCC "ap |
| 138 | |
| 139 | NOTA: Provare più volte quest'operazione, per impratichirsi ma$%"ad'a |
| 140 | |
| 141 | ---> AAA |
| 142 | function cresciutaTroppoinFretta() { |
| 143 | if ( condizioneVera ) { |
| 144 | faiQualcosa() |
| 145 | } |
| 146 | // La classificazione della nostra funzione è cambiata |
| 147 | // non ha senso mantenerla nella posizione attuale |
| 148 | |
| 149 | // ...immaginate centinaia di righe di codice |
| 150 | |
| 151 | // Ingenuamente si potrebbe andare dall'inizio alla fine |
| 152 | // e annotare da qualche parte il numero di righe |
| 153 | } |
| 154 | BBB |
| 155 | CCC |
| 156 | |
| 157 | NOTA: marcature e registri non hanno niente in comune, quindi il registro |
| 158 | a è completamente indipendente dalla marcatura a. Questo non vale |
| 159 | per i nomi dei registri e quelli delle macro di Vim. |
| 160 | |
| 161 | RIFERIMENTI: Marcature :h marks |
| 162 | Movimenti marcature :h mark-motions (differenza fra ' e `) |
| 163 | |
| 164 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 165 | |
| 166 | Lezione 2.1 SOMMARIO |
| 167 | |
| 168 | |
| 169 | 1. Per inserire (copiando, cancellando) testo, e per incollarlo (incolla)) |
| 170 | sono disponibili 26 registri (a-z) |
| 171 | 2. Copiare una parola da una posizione qualsiasi al suo interno: yiw |
| 172 | 3. Cambiare una parola da una posizione qualsiasi al suo interno: ciw |
| 173 | 4. Inserire testo direttamente da registri in modo Insert: (C-r)a |
| 174 | |
| 175 | 5. Inserire il risultato di semplici operazioni aritmetiche in modo |
| 176 | Insert: (C-r)=60*60<INVIO> |
| 177 | 6. Inserire il risultato di chiamate a sistema in modo Insert: |
| 178 | (C-r)=system('ls -1') |
| 179 | |
| 180 | 7. Controllare contenuto registri con :reg |
| 181 | 8. Vedere dove vanno a finire le cancellazioni di intere righe: dd |
| 182 | nei registri numerati, ossia discendendo dal registro 1 al 9. |
| 183 | Osservare che le righe intere cancellate sono disponibili nei registri |
| 184 | numerati più a lungo di qualsiasi altra modifica |
| 185 | 9. Vedere la destinazione finale delle operazioni di copia nei registri |
| 186 | numerati e controllare quanto si può aspettare che durino |
| 187 | |
| 188 | 10. Inserire marcature in modo Normale m[a-zA-Z0-9] |
| 189 | 11. Spostarsi a una riga marcata con il comando ' |
| 190 | |
| 191 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 192 | |
| 193 | Qui finisce il capitolo due della guida Vim. Ci sono lavori in corso. |
| 194 | |
| 195 | Questo capitolo è stato scritto da Paul D. Parker |
| 196 | e tradotto da Antonio Colombo |
| 197 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |