Essere efficienti con VS Code
VS Code è l'editor disponibile in sede d'esame e mostrato a lezione. Come ogni strumento di lavoro, è una buona idea imparare ad usarlo bene per essere più rapidi ed efficaci. Questo si traduce, in genere, nel prendere l'abitudine di usare meno il mouse e più la tastiera, usando le dovute scorciatoie e combinazioni di tasti.
In questa documentazione ci focalizziamo sulle combinazioni per Windows, che sono quelle che troverete all'esame. Evidenzierò con una ⭐ le combinazioni più importanti e probabilmente meno note.
Fra le cause dei vari errori per cui riceviamo richieste d'aiuto, una delle più frequenti è che i file modificati non sono stati salvati.
Un file modificato ma non salvato è indicato da un pallino nero nella tab in alto, e le modifiche non saranno visibili a altri programmi come gcc
e iverilog
.
Si consiglia di salvare spesso e abitualmente, usando ctrl + s
.
Le basi elementari
Quando si scrive in un editor, il testo finisce dove sta il cursore (in inglese caret). È la barra verticale che indica dove stiamo scrivendo. Si può spostare usando le frecce, non solo destra e sinistra ma anche su e giù. Usando font monospace, infatti, il testo è una matrice di celle delle stesse dimensioni, ed è facile prevedere dove andrà il caret anche mentre ci si sposta tra le righe.
Vediamo quindi le combinazioni più comuni.
Tasti | Cosa fa | |
---|---|---|
Tenere premuto shift | Seleziona il testo seguendo il movimento del cursore. | |
ctrl + c | Copia il testo selezionato. | |
ctrl + v | Incolla il testo selezionato. | |
ctrl + x | Taglia (cioè copia e cancella) il testo selezionato. | |
ctrl + f | Cerca all'interno del file. | |
ctrl + h | Cerca e sostituisce all'interno del file. | |
⭐ | ctrl + s | Salva il file corrente. |
ctrl + shift + p | Apre la Command Palette di VS Code. |
Le basi un po' meno elementari
Si può spostare il cursore in modo ben più rapido che un carattere alla volta.
Tasti | Cosa fa | |
---|---|---|
⭐ | ctrl + freccia sx o dx | Sposta il cursore di un token (in genere una parola, ma dipende dal contesto). |
home (inizio in italiano, più spesso ↖ ) | Sposta il cursore all'inizio della riga. | |
end (fine in italiano) | Sposta il cursore alla fine della riga. | |
ctrl + shift + f | Cerca all'interno della cartella/progetto/... | |
ctrl + shift + h | Cerca e sostituisce all'interno della cartella/progetto/... | |
alt + freccia su/giù | Sposta la riga corrente (o le righe selezionate) verso l'alto/basso. | |
⭐ | crtl + alt + freccia su/giù | Copia la riga corrente (o le righe selezionate) verso l'alto/basso. |
Editing multi-caret
Normalmente c'è un cursore, e ogni modifica fatta viene applicata dov'è quel singolo cursore.
Negli esempi che seguono, userò |
per indicare un cursore, e coppie di _
come delimitatori del testo selezionato.
Contenu|to dell'editor
Premendo A
ContenuA|to dell'editor
L'idea del multi-caret è di avere più di un cursore, per modificare più punti del testo allo stesso tempo. Questo è utile se abbiamo più punti del testo con uno stesso pattern.
Tasti | Cosa fa | |
---|---|---|
⭐ | ctrl + d | Aggiunge un cursore alla fine della prossima occorrenza del testo selezionato. |
esc | Ritorno alla modalità con singolo cursore. |
Vediamo un esempio.
Prima |riga dell'editor
Seconda riga dell'editor
Terza riga dell'editor
Si comincia selezionando del testo.
Prima _riga_| dell'editor
Seconda riga dell'editor
Terza riga dell'editor
Usiamo ora ctrl + d
per mettere un nuovo caret dopo la prossima occorrenza di "riga".
Prima _riga_| dell'editor
Seconda _riga_| dell'editor
Terza riga dell'editor
Àbbiamo ora due caret e se facciamo una modifica verrà fatta in tutti e due i punti. Premendo per esempio e
, andremo a sovrascrivere la parola "riga" in entrambi i punti.
Prima e| dell'editor
Seconda e| dell'editor
Terza riga dell'editor
Entrambi i cursori seguiranno indipendentemente anche gli altri comandi: movimento per caratteri, movimento per token, selezione, copia e incolla.
Per sfruttare questo, conviene scrivere codice secondo pattern in modo da facilitare questo tipo di modifiche.
Per esempio, è utile avere cose che vorremmo poi modificare contemporaneamente su righe diverse, in modo da sfruttare home
e end
in modalità multi-cursore.
Vedremo in particolare come la sintesi di reti sincronizzate diventa molto più semplice se si sfrutta appieno l'editor.