Aprire, evidenziare e formattare
I file di testo/codice si aprono nell'editor (Scintilla) con evidenziazione della sintassi. Sono disponibili commento/decommento (Ctrl+/), sposta e duplica riga, segnalibri (Ctrl+F2), un elenco di simboli/funzioni, autocompletamento basato sulle parole, guide di indentazione, a capo automatico, zoom e rilevamento delle modifiche al file su disco. Con il versionamento abilitato, il margine segna le righe aggiunte/modificate dall'ultima versione.
Ci sono anche le macro (registra/riproduci una sequenza di modifiche con Ctrl+Shift+R / F4, in Strumenti → Esegui → Macro), formatta/abbellisci (Shift+Alt+F), una tabella ASCII sulla barra degli strumenti della scheda (per inserire caratteri/box-drawing) e un correttore ortografico (Hunspell). pt-BR e en-US sono inclusi; gli altri idiomi si scaricano su richiesta dalla tabella in Impostazioni → Note e scrittura → Ortografia (una riga per idioma, con un pulsante Scarica/Rimuovi). Per seguire un file di log mentre viene scritto, usa il pulsante Monitora (tail -f) nella barra degli strumenti della scheda stessa. I file molto grandi (oltre ~1 MB) si aprono in un editor leggero virtualizzato che carica solo i blocchi visibili; puoi forzarlo tramite Apri → Apri nell'editor leggero... Se la memoria non basta per indicizzare tutte le righe, la fascia dell'editor avvisa e restano disponibili solo le prime.
Formattazione e lint: Shift+Alt+F formatta il documento.
JSON, XML e SQL li formatta LightNote da solo, senza installare nulla — e
tocca solo gli spazi: l'ordine delle chiavi, i numeri e i testi restano come li hai
scritti. Conta il tipo mostrato nella barra di stato, non solo l'estensione: in una
scheda di bozza, incolla il JSON, scegli JSON come tipo e formatta (un
testo che inizia con {, [ o < viene
riconosciuto anche senza scegliere). Se c'è un errore il testo non cambia: il punto
viene sottolineato in rosso, il cursore ci va e la barra di stato indica riga,
colonna e motivo (virgola mancante, chiave senza virgolette…). La freccia del
pulsante Formatta offre Compatta (il JSON o l'XML su una sola riga), e con
una selezione entrambi agiscono solo su di essa — utile per il JSON dentro una riga
di log. Un testo con un documento JSON completo per riga (JSON Lines, detto anche NDJSON — comune nei log e negli export) viene riconosciuto e formattato riga per riga, senza diventare un unico documento.
F7 verifica: JSON e XML vengono controllati nel testo stesso, senza salvare; negli altri linguaggi esegue il linter (ruff, eslint, shellcheck, luacheck…), che segna i problemi nell'editor e nel pannello Problemi (pannello inferiore, navigabile). Gli altri linguaggi usano un formattatore esterno (black, prettier, clang-format, gofmt, rustfmt…); se il tipo non ne ha ancora uno, Formatta, F7 e F5 aprono un assistente che mostra solo gli strumenti di quel tipo, indica quali sono già installati e installa quello scelto con un clic (o accetta il comando di un altro programma). Gli elenchi completi sono in Impostazioni → Strumenti di codice → Formattatori per linguaggio e → Linter per linguaggio, con le opzioni formatta al salvataggio / lint al salvataggio. Esegui il file nel pannello di output con F6 (cattura codice di uscita e durata, con stop/riavvio) o solo un frammento con F8.
Convertire da un formato a un altro: il sottomenu Converti si trova in Modifica, nella freccia del pulsante Formatta, nel menu del tipo nella barra di stato e nel clic destro dell’editor — anche in una nota. Agisce sulla selezione, o su tutto il testo quando non c’è nulla di selezionato. In alto indica cosa ha riconosciuto («Selezione: JSON», «Tutto il testo: CSV») e mostra per prime le conversioni adatte a quel contenuto; le altre stanno in gruppi, in grigio con il motivo quando non si applicano. Ci sono JSON ↔ YAML, JSON ↔ XML (gli attributi diventano @nome), JSON ↔ CSV e JSON → tabella Markdown (un oggetto annidato diventa la colonna a.b), CSV ↔ tabella Markdown, CSV → INSERT SQL, JSON Lines (NDJSON) ↔ array JSON, HTML ↔ Markdown, parametri URL ↔ JSON, Base64, codifica URL, entità HTML, stringa JSON e timestamp Unix ↔ data ISO 8601. L’ordine delle chiavi e i numeri restano come li hai scritti, e il CSV riconosce il ; di Excel. Convertire tutto il testo cambia anche il tipo della scheda (il CSV diventato tabella passa a Markdown), ma il file mantiene la sua estensione — la barra di stato lo segnala. In un JSON, il sottomenu Nomi dei campi rinomina solo le chiavi in camelCase, PascalCase, snake_case o kebab-case: i valori, i numeri e il rientro restano come sono, e non cambia nulla se due campi dello stesso oggetto finirebbero con lo stesso nome. Gli stili di nome (camelCase, PascalCase, snake_case, kebab-case e COSTANTE_CASE) sono in Modifica → Maiuscole/minuscole, sotto MAIUSCOLE, minuscole e Prima Lettera Maiuscola. Agiscono sulla selezione o, senza selezione, sul nome sotto il cursore — mai sull’intero file — e cambiano solo i nomi: virgolette, due punti e parentesi graffe restano dove erano. Una riga che è solo una frase («nome del cliente») diventa un solo nome (nomeDelCliente).
Un .md aperto come codice torna a essere nota con un clic. La barra dell'editor mostra Apri come nota quando il file aperto è una nota — è l'inverso di Apri come → Codice del menu dell'albero, e riporta la scheda alla vista nota, con modifica formattata, lettura, sommario e proprietà. Il pulsante appare solo quando il cambio è possibile: una nota troppo grande resta nell'editor di codice.
Multi-cursore, cronologia e definizione
Altre funzionalità di modifica: multi-cursore per occorrenza
(Ctrl+D, tutte con Alt+F3), duplica riga (Ctrl+Shift+D),
unisci righe (Ctrl+Shift+J), espandi/riduci la selezione per ambito
(Ctrl+Shift+Space / Ctrl+Alt+Space), selezione rettangolare
(Alt+trascina), piega/espandi tutto, frammenti (snippet)
(Ctrl+J, modificabili in Impostazioni → Editor), Vai al
simbolo nel file (# nella tavolozza) e nel progetto
(Ctrl+T o ##), cronologia di navigazione
(Alt+←/→), una traccia breadcrumb in cima all'editor, righelli
di colonna, colorazione delle coppie di parentesi, chiusura/avvolgimento
automatico delle coppie e pulizia al salvataggio (rimuovi spazi, riga vuota
finale) — tutto in Impostazioni → Editor.
Frammenti con Tab. Digita l’attivatore e premi Tab: in un file SQL, sf diventa SELECT * FROM TABLE; con TABLE già selezionato — digita il nome della tabella e Tab passa al campo successivo (Shift+Tab torna indietro, Esc esce). Sono pronti sf, sc, sw, sj, sg, ins, upd e del (gli ultimi due già con WHERE). Ogni frammento vale per un linguaggio o per tutti, e in Impostazioni → Editor crei i tuoi in qualsiasi linguaggio, con campi ${1:NOME}, ripetizioni $1 e la fine del cursore $0; il clic destro su una selezione offre Crea frammento dalla selezione. I frammenti compaiono anche nell’elenco del completamento. Con l’elenco aperto, Tab resta suo; perché Tab non espanda i frammenti, disattiva Espandi i frammenti con Tab — Ctrl+J continua a funzionare.
Cronologia locale e appunti: a ogni salvataggio, LightNote conserva una versione del file (File → Cronologia locale…, ripristinabile), indipendente da Git. Ctrl+Alt+V apre la cronologia degli appunti per incollare un elemento copiato in precedenza. Ctrl+Shift+T riapre l'ultima scheda chiusa; le schede possono essere fissate (menu contestuale), il che le protegge dall'essere rilasciate quando inattive.
Vai alla definizione: F12 o Ctrl+clic su un identificatore salta a dove è definito nello spazio di lavoro; Shift+F12 trova i suoi utilizzi.
Minimap e operazioni di testo
Minimappa. Un’anteprima dell’intero documento si trova sul bordo destro dell’editor: mostra la “forma” del codice (i colori dell’evidenziazione della sintassi in scala ridotta) e segna la regione visibile. Fare clic o trascinare per spostarsi in qualsiasi punto del file. Attivala in Visualizza → Minimappa o in Impostazioni → Editor. Il pulsante Minimappa nella barra della scheda di codice (accanto ad ASCII) la attiva e disattiva senza uscire dall’editor. Sul bordo sinistro dell’anteprima corre una striscia di segni: in blu le righe con segnalibro (lo stesso pallino del margine) e in ambra le occorrenze della ricerca rapida — così vedi a colpo d’occhio come si distribuiscono nell’intero file, anche fuori dallo schermo.
Operazioni sul testo. Nel menu Modifica — e nel menu contestuale dell'editor — ci sono i sottomenu Righe (sposta, duplica, elimina, ordina, unisci, inverti, numera) e Pulizia (rimuovi spazi, righe vuote/duplicate, tabulazioni ↔ spazi). Con una selezione, il menu contestuale offre anche Salva la selezione come nuovo file…: scrive il frammento in un file accanto a quello corrente e lo apre in una scheda (l'originale non viene modificato).
Rientro, commenti e parentesi
Rientro del file. Nella barra di stato, accanto al fine riga, il pulsante Spazi: 4 (o Tab: 4) dice come rientra la scheda. Il clic apre il menu: Rientra con spazi o Rientra con tabulazione, la Larghezza del rientro (2, 3, 4 o 8 colonne), Converti il rientro in spazi e in tabulazione (riscrive il rientro delle righe esistenti), Rileva dal contenuto e Usa come predefinito, che salva la scelta per i file nuovi. Quello che scegli lì vale per quella scheda.
Da dove viene il rientro. All'apertura di un file, LightNote cerca un .editorconfig nella sua cartella e in quelle sopra (fino a uno con root = true) e applica indent_style, indent_size e tab_width; trim_trailing_whitespace e insert_final_newline valgono al salvataggio, end_of_line e charset solo in un file nuovo. Senza .editorconfig, guarda le righe del file stesso e adotta il rientro che trova, se è chiaro; altrimenti resta il predefinito. L'ordine è questo: .editorconfig, poi il file, poi il predefinito di Impostazioni → Editor, dove si trovano Rientro predefinito, Rileva il rientro di ogni file all'apertura e Rispetta il .editorconfig dello spazio di lavoro.
Rientro intelligente. Invio dopo {, ( o [ — e dopo : a fine riga, solo in Python — apre la riga successiva un livello più dentro. Tra {}, Invio apre il blocco su tre righe, con il cursore in quella centrale, e un solo Ctrl+Z annulla tutto. Una }, ) o ] digitata su una riga vuota torna al rientro della riga che l'ha aperta. Perché Invio copi solo il rientro della riga sopra, disattiva Rientro intelligente in Impostazioni → Editor.
Commenti, parentesi e completamento. Ctrl+/ commenta con la sintassi del linguaggio che la scheda sta usando — anche in una bozza senza file e quando cambi l'evidenziazione della sintassi nella barra di stato — e, dove il linguaggio ha solo commenti di blocco (HTML, CSS), usa quello di blocco. Ctrl+Shift+\ porta il cursore alla parentesi tonda, quadra o graffa corrispondente a quella in cui si trova, e Ctrl+Shift+Alt+\ seleziona fin lì; entrambi sono anche nel menu del clic destro. Dopo le parole del documento, l'elenco del completamento propone le parole chiave del linguaggio (def, return…), anche quelle non ancora presenti nel file. E Visualizza → Numeri di riga nasconde o mostra il margine numerato.
Schede recenti (Ctrl+Tab)
Ctrl+Tab torna alla scheda che hai usato prima, nello stesso riquadro, e non a quella accanto. Tenendo premuto Ctrl, ogni Tab scende nell'elenco delle schede recenti, che compare al centro del riquadro; rilasciando Ctrl si apre quella scelta, ed Esc annulla. Ctrl+Shift+Tab scorre in ordine inverso. Ogni riquadro ha il proprio elenco, una scheda chiusa ne esce e, con una sola scheda, non compare nulla.
Riquadri affiancati e in griglia
La griglia. L'area di modifica si divide in riquadri, ognuno con le sue schede, disposti in righe e colonne: una riga contiene uno o più riquadri affiancati, e le righe si impilano. Il riquadro in alto a sinistra è quello principale e non sparisce mai, e l'ultima riga è quella dei terminali. Un riquadro nasce solo quando lo chiedi, e sparisce da solo quando ne esce l'ultima scheda.
Dividere. Finestra → Dividi a destra apre una seconda vista della scheda attiva in una nuova colonna, subito a destra del riquadro in cui sei; Finestra → Layout → Dividi in basso fa lo stesso in una nuova riga, subito sotto quella del riquadro attivo e sopra quella dei terminali. Le due viste modificano lo stesso testo. Quando non c'è spazio per un altro riquadro, la vista va nel riquadro vicino. Finestra → Rimuovi divisione chiude il riquadro a destra di quello principale. Il pulsante Dividi della barra degli strumenti offre le stesse voci.
Trascinare una scheda. Mentre trascini una scheda, ogni riquadro mostra una fascia lungo il bordo destro e un'altra lungo il bordo inferiore: rilasciarla su quella destra crea una colonna subito a destra di quel riquadro, e su quella inferiore una riga subito sotto. Le fasce in fondo all'area portano la scheda nella riga dei terminali. Una fascia che non potrebbe creare un riquadro, per mancanza di spazio, non compare. Nel menu della scheda (clic destro), Sposta in un nuovo riquadro a destra fa lo stesso senza trascinare, e Sposta nel riquadro successivo e Sposta nel riquadro precedente la portano a un vicino.
Layout pronti. Finestra → Layout (anche nel pulsante Dividi) sistema la griglia in un colpo solo: 1 riquadro, 2 colonne, 3 colonne o Griglia 2×2. Applicare un layout non chiude mai una scheda: le schede di un riquadro in più si uniscono al vicino che resta, e i terminali non cambiano. Uniforma le dimensioni dà alle colonne di ogni riga la stessa larghezza e alle righe la stessa altezza. Un layout che non entra in questo schermo compare disabilitato, e il suggerimento dice perché.
Riquadro vuoto. Un riquadro che un layout crea vuoto mostra Trascina qui una scheda, oppure fai clic qui e apri un file: un clic lo seleziona, e il prossimo file che apri finisce lì. Non sparisce da solo; il pulsante Chiudi riquadro lo toglie.
Quanti riquadri entrano. Il limite viene dalla dimensione dello schermo, non da un numero: una nuova colonna nasce solo se ogni riquadro della riga resta largo almeno circa 420 pixel, e una nuova riga solo se ogni riga resta alta circa 240 — ma due colonne e due righe entrano sempre. Su un portatile la griglia resta a due colonne; su un monitor ultrawide ne entrano quattro o cinque.
Da tastiera. Ctrl+Alt+PgDn e Ctrl+Alt+PgUp portano il focus al riquadro successivo e a quello precedente, riga per riga, ricominciando dall'inizio; contano anche i terminali. In Finestra → Layout ci sono anche Sposta la scheda nel riquadro successivo e Sposta la scheda nel riquadro precedente.
Riaprendo la cartella. La griglia torna come l'hai lasciata: le righe, le colonne, le dimensioni e le schede di ogni riquadro (che caricano il file solo quando le scegli). Aperta su uno schermo più piccolo, le colonne che non entrano si uniscono nell'ultima che è entrata: nessuna scheda va persa.
Attività del progetto
Build, test e lint del progetto si eseguono senza passare dal terminale, in Strumenti → Attività del progetto. LightNote trova da solo le attività della cartella aperta: gli scripts del package.json (con npm, pnpm o yarn, secondo il file di lock presente), i target del Makefile, i buildPresets del CMakePresets.json, cargo build/test/run/check in un progetto Rust, pytest in un pyproject.toml che lo configura e le ricette del justfile.
Le tue attività. Le attività scritte a mano vanno in un tasks.json nel formato di VS Code (versione 2.0.0), letto da .vscode/tasks.json e da .lightnote/tasks.json: chi ha già quello di VS Code non deve scrivere niente. Valgono label, type (shell o process), command, args, options.cwd e options.env, group con isDefault, i blocchi windows/linux/osx, i commenti e le variabili ${workspaceFolder}, ${file}, ${fileDirname} e ${fileBasenameNoExtension}. Un file con un errore compare nel menu con il motivo e viene ignorato; si leggono fino a 200 attività.
Eseguire. Scegli l'attività nel menu, o premi Ctrl+Shift+B per eseguire l'attività predefinita: quella scelta in Strumenti → Attività del progetto → Attività predefinita (salvata per cartella); senza scelta, quella che il tasks.json segna con isDefault; senza nessuna, LightNote chiede quale eseguire. L'output va nel pannello di output, con il codice di uscita e il pulsante per interrompere. Modifica le attività del progetto apre il .vscode/tasks.json, se esiste, o crea un .lightnote/tasks.json con un esempio. Se il programma di un'attività non è installato, la barra di stato dice quale e offre Programmi esterni.
Server di linguaggio (LSP)
Senza configurazione, vai alla definizione, trova utilizzi, rinomina e il completamento cercano per nome: è veloce, ma non capisce l'ambito. Un server di linguaggio (LSP) è un programma a parte, lo stesso che usa VS Code, che capisce davvero il linguaggio. È disattivato: attivalo in Impostazioni → Strumenti di codice, nel gruppo Server di linguaggio (LSP), o in Strumenti → Server di linguaggio → Usa i server di linguaggio (LSP). Ogni tipo di file ha il suo: pyright (Python), typescript-language-server (JavaScript e TypeScript), clangd (C e C++), gopls (Go), rust-analyzer (Rust), lua-language-server (Lua) e bash-language-server (shell).
Cosa cambia. Con il server attivo, F12 va alla definizione che indica, Shift+F12 elenca gli utilizzi reali nel pannello di ricerca, e rinomina cambia solo il simbolo giusto: LightNote chiede “Rinominare in N file?”, modifica le schede aperte (un Ctrl+Z lo annulla in ognuna) e scrive i file chiusi mantenendone la codifica. Il completamento propone ciò che il server suggerisce, gli errori compaiono sottolineati e nel pannello Problemi, il suggerimento su un nome mostra tipo e documentazione, e Shift+Alt+F formatta tramite il server quando non c'è un formattatore configurato per il tipo. Se il server non risponde, tarda (il completamento aspetta 1,5 s) o non conosce la risposta, vale la ricerca per nome, come prima; un linter configurato continua a valere con Ctrl+S.
L'indicatore e l'installazione. Nella barra di stato, un indicatore mostra il server della scheda e il suo stato (pyright · pronto, avvio…, errore, non installato); il clic su di esso offre Riavvia il server, Interrompi il server, Mostra registro… e la configurazione. Per installare, usa Strumenti → Server di linguaggio → Configura per .py…: lo stesso assistente dei formattatori mostra il comando e installa con un clic — aprire una scheda non offre mai di installare nulla. Il server parte con la prima scheda del suo tipo e si ferma 5 minuti dopo la chiusura dell'ultima; ne girano al massimo 4 insieme, un file oltre 1 MB non gli viene inviato e ogni file mostra fino a 500 errori.
Indice
Modifica
- Panoramica
- Primi passi
- Spazio di lavoro e finestre
- Pannello Operazioni: avanzamento e messaggi
- Editor di codice
- Markdown e wikilink
- Diagrammi (Mermaid)
- Matematica e chimica (LaTeX)
- Calendario nella nota
- Numerazione e riferimenti incrociati
- Citazioni e riferimenti
- Norma del lavoro accademico
- Grafo delle connessioni
- Tabelle (Parquet, CSV, JSON, Excel)
- Area di analisi: tabella pivot e più grafici
- PDF e immagini
- Immagini: annotare uno screenshot
- Pagine HTML (.html)
- Stampa
- Zip come cartella (.zip)
- Blocchi (.lnb)
- Attività (Kanban / Gantt)
- Tabella personalizzata (.lnd)
- Base (query salvate sulle note)
Strumenti
- Ricerca nei file ed elementi in sospeso
- Versionamento (Git semplificato)
- Snapshot e backup
- Revisione modifiche (checkpoint)
- Confronta file (diff)
- Esegui codice (F5)
- Terminale e CLI di IA
- Assistente IA sulla selezione (Ctrl+K / Ctrl+I)
- IA sul tuo computer
- Sessioni IA
- Chat IA
- Test di API HTTP (.lnh)
- Database (.lnc)
- Connessione SSH (.lns)
- Sicurezza: Passphrase, PIN e Markdown Sicuro
- Note giornaliere, cattura rapida e tray
- Ritrova le note vecchie
- Le tue note sul telefono
- Registrare audio (voce, riunione) con trascrizione IA
- Note adesive
- Calendario
- Tavolozza comandi
Automazione (IA / script)
Riferimento