Abrir, realçar e formatar
Arquivos de texto/código abrem no editor (Scintilla) com realce de sintaxe. Há comentar/descomentar (Ctrl+/), mover e duplicar linha, marcadores (Ctrl+F2), lista de símbolos/funções, autocompletar por palavras, guias de indentação, quebra de linha, zoom e detecção de alteração do arquivo em disco. Com o versionamento ativo, a margem mostra as linhas adicionadas/alteradas desde a última versão.
Há ainda macros (gravar/reproduzir uma sequência de edições com Ctrl+Shift+R / F4, em Ferramentas → Executar → Macros), formatar/beautify (Shift+Alt+F), uma tabela ASCII na barra da aba (para inserir caracteres/molduras) e corretor ortográfico (Hunspell). O pt-BR e o en-US já vêm embutidos; os demais idiomas você baixa sob demanda na tabela de Configurações → Notas e escrita → Ortografia (uma linha por idioma, com botão Baixar/Remover). Para acompanhar um arquivo de log sendo escrito, use o botão Monitorar (tail -f) na barra da própria aba. Arquivos muito grandes (acima de ~1 MB) abrem num editor leve virtualizado, que carrega só os trechos visíveis; é possível forçá-lo em Abrir → Abrir no editor leve... Se faltar memória para indexar todas as linhas, a faixa do editor avisa e só as primeiras ficam disponíveis.
Formatar e verificar (linters): Shift+Alt+F formata o documento.
JSON, XML e SQL o LightNote formata sozinho, sem instalar nada — e só mexe em
espaços: a ordem das chaves, os números e os textos ficam como você escreveu. Vale o
tipo que está na barra de status, não só a extensão: numa aba de rascunho, cole
o JSON, escolha JSON no tipo e formate (um texto que começa com
{, [ ou < é reconhecido mesmo sem escolher).
Com erro, o texto não muda: o ponto fica sublinhado em vermelho, o cursor vai até ele
e a barra de status diz linha, coluna e o motivo (vírgula faltando, chave sem
aspas…). A seta do botão Formatar tem Compactar (o JSON ou o XML numa linha
só), e com um trecho selecionado os dois agem só nele — útil para o JSON dentro de
uma linha de log. Um texto com um JSON completo por linha (JSON Lines, também chamado NDJSON — comum em logs e exports) é reconhecido e formatado linha a linha, sem virar um documento só.
F7 verifica: JSON e XML são conferidos no próprio texto, sem salvar; nas demais linguagens roda o linter (ruff, eslint, shellcheck, luacheck…), que marca os problemas no editor e no painel Problemas (pane inferior, navegável). Para as outras linguagens o formatador é externo (black, prettier, clang-format, gofmt, rustfmt…); se o tipo ainda não tem um, Formatar, F7 e F5 abrem um assistente que mostra só as ferramentas daquele tipo, diz quais já estão instaladas e instala a escolhida com um clique (ou aceita o comando de outro programa). As listas completas ficam em Configurações → Ferramentas de código → Formatadores por linguagem e → Linters por linguagem, com as opções de formatar ao salvar / verificar ao salvar. Rode o arquivo no painel de saída com F6 (captura código de saída e duração, com parar/reiniciar) ou só um trecho com F8.
Converter de um formato para outro: o submenu Converter está em Editar, na seta do botão Formatar, no menu de tipo da barra de status e no clique direito do editor — inclusive numa nota. Ele age na seleção, ou no texto todo quando nada está selecionado. O topo diz o que ele reconheceu (“Seleção: JSON”, “Texto todo: CSV”) e traz primeiro as conversões que servem para aquele conteúdo; as demais ficam em grupos, em cinza com o motivo quando não se aplicam. Há JSON ↔ YAML, JSON ↔ XML (atributos viram @nome), JSON ↔ CSV e JSON → tabela Markdown (objeto aninhado vira a coluna a.b), CSV ↔ tabela Markdown, CSV → INSERT de SQL, JSON Lines (NDJSON) ↔ array JSON, HTML ↔ Markdown, parâmetros de URL ↔ JSON, Base64, codificação de URL, entidades HTML, string JSON e timestamp Unix ↔ data ISO 8601. A ordem das chaves e os números ficam como você escreveu, e o CSV reconhece o ; do Excel. Converter o texto todo troca também o tipo da aba (o CSV que virou tabela passa a ser Markdown), mas o arquivo continua com a extensão dele — a barra de status avisa. Num JSON, o submenu Nomes dos campos renomeia só as chaves para camelCase, PascalCase, snake_case ou kebab-case: os valores, os números e o recuo ficam como estão, e nada muda se dois campos do mesmo objeto ficariam com o mesmo nome. Os estilos de nome (camelCase, PascalCase, snake_case, kebab-case e CONSTANTE_CASE) ficam em Editar → Caixa, abaixo de MAIÚSCULAS, minúsculas e Primeira Letra Maiúscula. Eles agem na seleção ou, sem seleção, no nome sob o cursor — nunca no arquivo inteiro — e trocam só os nomes: aspas, dois-pontos e chaves ficam onde estavam. Uma linha que é só uma frase (“nome do cliente”) vira um nome só (nomeDoCliente).
Um .md aberto como código volta a ser nota num clique. A barra do editor mostra Abrir como nota quando o arquivo aberto é uma nota — é o inverso do Abrir como → Código do menu da árvore, e devolve a aba para a visão de nota, com edição formatada, leitura, sumário e propriedades. O botão só aparece quando a troca é possível: uma nota grande demais continua no editor de código.
Multi-cursor, histórico e definição
Mais recursos de edição: multi-cursor por ocorrência (Ctrl+D, todas
com Alt+F3), duplicar linha (Ctrl+Shift+D), juntar linhas
(Ctrl+Shift+J), expandir/reduzir seleção por escopo (Ctrl+Shift+Espaço
/ Ctrl+Alt+Espaço), seleção retangular (Alt+arraste), dobrar/expandir
tudo, trechos/snippets (Ctrl+J, editáveis em Configurações →
Editor), Ir para símbolo no arquivo (# na paleta) e no
projeto (Ctrl+T ou ##), histórico de navegação
(Alt+←/→), trilha de navegação (breadcrumbs) no topo do editor,
réguas de coluna, colorir pares de parênteses, auto-fechar/cercar pares e
higiene ao salvar (aparar espaços, quebra final) — tudo em Configurações →
Editor.
Trechos com Tab. Digite o gatilho e aperte Tab: num arquivo SQL, sf vira SELECT * FROM TABLE; com TABLE já selecionado — digite o nome da tabela e o Tab vai ao próximo campo (Shift+Tab volta, Esc sai). Vêm prontos sf, sc, sw, sj, sg, ins, upd e del (os dois últimos já com WHERE). Cada trecho vale numa linguagem ou em todas, e em Configurações → Editor você cria os seus em qualquer linguagem, com campos ${1:NOME}, repetições $1 e o fim do cursor $0; o botão direito sobre uma seleção oferece Criar trecho a partir da seleção. Os trechos também aparecem na lista do completar. Com a lista aberta, o Tab continua sendo dela; para o Tab não expandir trechos, desligue Expandir trechos com Tab — o Ctrl+J continua valendo.
Histórico local e área de transferência: a cada gravação, o LightNote guarda uma versão do arquivo (Arquivo → Histórico local…, restaurável), independente do Git. Ctrl+Alt+V abre o histórico da área de transferência para colar um item copiado anteriormente. Ctrl+Shift+T reabre a última aba fechada; as abas podem ser fixadas (menu de contexto), o que as protege da liberação por inatividade.
Ir à definição: F12 ou Ctrl+clique sobre um identificador salta para onde ele é definido no espaço; Shift+F12 localiza os usos.
Minimap e operações de texto
Minimap. Uma miniatura do documento inteiro fica na borda direita do editor: ela mostra a “forma” do código (as cores do realce de sintaxe em escala reduzida) e marca a região visível. Clique ou arraste nela para navegar até qualquer ponto do arquivo. Ligue/desligue em Exibir → Minimap ou em Configurações → Editor. O botão Minimap da barra da própria aba de código (ao lado do ASCII) liga e desliga sem sair do editor. Na borda esquerda da miniatura fica uma faixa de marcas: em azul as linhas com marcador (a mesma bolinha da margem) e em âmbar as ocorrências da busca rápida — assim você vê de relance como elas se espalham pelo arquivo inteiro, mesmo nas partes que estão fora da tela.
Operações de texto. No menu Editar — e no menu de contexto do editor — ficam os submenus Linhas (mover, duplicar, deletar, ordenar, juntar, inverter, numerar) e Limpeza (aparar espaços, remover linhas vazias/duplicadas, tabulações ↔ espaços). Com um trecho selecionado, o menu de contexto também traz Salvar seleção como novo arquivo…: grava o trecho num arquivo ao lado do atual e o abre numa aba (o original não é alterado).
Recuo, comentário e parênteses
Recuo do arquivo. Na barra de status, ao lado do fim de linha, o botão Espaços: 4 (ou Tab: 4) diz como a aba recua. O clique abre o menu: Recuar com espaços ou Recuar com tabulação, a Largura do recuo (2, 3, 4 ou 8 colunas), Converter o recuo para espaços e para tabulação (reescreve o recuo das linhas que já existem), Detectar a partir do conteúdo e Usar como padrão, que grava a escolha para os arquivos novos. O que se escolhe ali vale para aquela aba.
De onde vem o recuo. Ao abrir um arquivo, o LightNote procura um .editorconfig na pasta dele e nas de cima (até um com root = true) e aplica indent_style, indent_size e tab_width; trim_trailing_whitespace e insert_final_newline valem ao salvar, e end_of_line e charset só num arquivo novo. Sem .editorconfig, ele olha as linhas do próprio arquivo e adota o recuo que encontrar, se for claro; senão fica o padrão. A ordem é essa: .editorconfig, depois o arquivo, depois o padrão de Configurações → Editor, onde ficam Recuo padrão, Detectar o recuo de cada arquivo ao abrir e Respeitar o .editorconfig do espaço.
Recuo inteligente. O Enter depois de {, ( ou [ — e de : no fim da linha, só em Python — já abre a linha seguinte um nível adentro. Entre {}, o Enter abre o bloco em três linhas, com o cursor na do meio, e um Ctrl+Z desfaz tudo. Um }, ) ou ] digitado numa linha em branco volta ao recuo da linha que o abriu. Para o Enter só copiar o recuo da linha de cima, desligue Recuo inteligente em Configurações → Editor.
Comentar, parênteses e completar. Ctrl+/ comenta na sintaxe da linguagem que a aba está usando — também num rascunho sem arquivo e quando você troca o realce na barra de status — e, onde a linguagem só tem comentário de bloco (HTML, CSS), usa o de bloco. Ctrl+Shift+\ leva o cursor ao par do parêntese, colchete ou chave em que ele está, e Ctrl+Shift+Alt+\ seleciona até lá; os dois estão também no clique direito. A lista do completar traz, depois das palavras do documento, as palavras-chave da linguagem (def, return…), mesmo as que ainda não aparecem no arquivo. E Exibir → Números de linha esconde ou mostra a margem numerada.
Abas recentes (Ctrl+Tab)
Ctrl+Tab volta para a aba que você usou antes, no mesmo painel — e não para a aba vizinha. Segurando o Ctrl, cada Tab desce na lista das abas recentes, que aparece no meio do painel; soltar o Ctrl abre a escolhida, e Esc cancela. Ctrl+Shift+Tab anda na ordem inversa. Cada painel tem a sua lista, uma aba fechada sai dela e, com uma aba só, nada aparece.
Painéis lado a lado e em grade
A grade. A área de edição se divide em painéis, cada um com as suas abas, arrumados em linhas e colunas: uma linha tem um ou mais painéis lado a lado, e as linhas se empilham. O painel de cima à esquerda é o principal e nunca sai, e a última linha é a dos terminais. Um painel só nasce quando você pede, e some sozinho quando a última aba dele sai.
Dividir. Janela → Dividir à direita abre uma segunda vista da aba ativa numa coluna nova, logo à direita do painel em que você está; Janela → Layout → Dividir abaixo faz o mesmo numa linha nova, logo abaixo da do painel ativo e acima da dos terminais. As duas vistas editam o mesmo texto. Quando não cabe mais um painel, a vista vai para o painel vizinho. Janela → Remover divisão fecha o painel à direita do principal. O botão Dividir da barra de ferramentas traz os mesmos itens.
Arrastar uma aba. Durante o arraste de uma aba, cada painel mostra uma faixa na borda direita e outra na borda de baixo: soltar na da direita cria uma coluna logo à direita daquele painel, e na de baixo, uma linha logo abaixo dele. As faixas no pé da área levam a aba para a linha dos terminais. A faixa que não poderia criar painel, por falta de espaço, não aparece. No menu da aba (clique direito), Mover para um novo painel à direita faz o mesmo sem arrastar, e Mover para o próximo painel e Mover para o painel anterior a levam a um vizinho.
Layouts prontos. Janela → Layout (também no botão Dividir) arruma a grade de uma vez: 1 painel, 2 colunas, 3 colunas ou Grade 2×2. Aplicar um layout nunca fecha aba: as abas de um painel que sobra se juntam no vizinho que fica, e os terminais não mudam. Igualar tamanhos deixa as colunas de cada linha com a mesma largura e as linhas com a mesma altura. O layout que não cabe nesta tela aparece desabilitado, e a dica diz por quê.
Painel vazio. O painel que um layout cria vazio mostra Arraste uma aba para cá, ou clique aqui e abra um arquivo: clicar nele o escolhe, e o próximo arquivo que você abrir vai para ele. Ele não some sozinho; o botão Fechar painel o tira.
Quantos painéis cabem. O limite vem do tamanho da tela, não de um número: uma coluna nova só nasce se cada painel da linha ficar com pelo menos uns 420 pixels de largura, e uma linha nova só se cada linha ficar com uns 240 de altura — mas duas colunas e duas linhas sempre cabem. Num notebook a grade fica em duas colunas; num monitor ultrawide cabem quatro ou cinco.
Pelo teclado. Ctrl+Alt+PgDn e Ctrl+Alt+PgUp levam o foco ao próximo painel e ao anterior, linha a linha, dando a volta; os terminais entram na conta. Em Janela → Layout ficam também Mover aba para o próximo painel e Mover aba para o painel anterior.
Ao reabrir a pasta. A grade volta como você a deixou: as linhas, as colunas, os tamanhos e as abas de cada painel (que só leem o arquivo quando você as escolhe). Aberta numa tela menor, as colunas que não cabem se juntam na última que coube — nenhuma aba se perde.
Tarefas do projeto
Build, testes e lint do projeto rodam sem ir ao terminal, em Ferramentas → Tarefas do projeto. O LightNote encontra sozinho as tarefas da pasta aberta: os scripts do package.json (com npm, pnpm ou yarn, conforme o arquivo de trava que houver), os alvos do Makefile, os buildPresets do CMakePresets.json, cargo build/test/run/check num projeto Rust, o pytest num pyproject.toml que o configura e as receitas do justfile.
As suas tarefas. As tarefas escritas à mão ficam num tasks.json no formato do VS Code (versão 2.0.0), lido de .vscode/tasks.json e de .lightnote/tasks.json: quem já tem o do VS Code não precisa escrever nada. Valem label, type (shell ou process), command, args, options.cwd e options.env, group com isDefault, os blocos windows/linux/osx, comentários e as variáveis ${workspaceFolder}, ${file}, ${fileDirname} e ${fileBasenameNoExtension}. Um arquivo com erro aparece no menu com o motivo e é ignorado; são lidas até 200 tarefas.
Rodar. Escolha a tarefa no menu, ou aperte Ctrl+Shift+B para rodar a tarefa padrão: a escolhida em Ferramentas → Tarefas do projeto → Tarefa padrão (guardada por pasta); sem escolha, a que o tasks.json marca com isDefault; sem nenhuma, o LightNote pergunta qual rodar. A saída vai para o painel de saída, com o código de saída e o botão de parar. Editar tarefas do projeto abre o .vscode/tasks.json, se existir, ou cria um .lightnote/tasks.json com um exemplo. Se o programa de uma tarefa não está instalado, a barra de status diz qual e oferece Programas externos.
Servidores de linguagem (LSP)
Sem configuração, ir à definição, localizar usos, renomear e completar procuram pelo nome: é rápido, mas não entende escopo. Um servidor de linguagem (LSP) é um programa à parte, o mesmo que o VS Code usa, que entende a linguagem de verdade. Ele vem desligado: ligue em Configurações → Ferramentas de código, no grupo Servidores de linguagem (LSP), ou em Ferramentas → Servidor de linguagem → Usar servidores de linguagem (LSP). Cada tipo de arquivo tem o seu: 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).
O que muda. Com o servidor ativo, F12 vai à definição que ele aponta, Shift+F12 lista os usos de verdade no painel de busca, e renomear troca só o símbolo certo: o LightNote pergunta “Renomear em N arquivos?”, troca nas abas abertas (um Ctrl+Z desfaz em cada uma) e grava os arquivos fechados mantendo a codificação deles. O completar traz o que o servidor sugere, os erros aparecem sublinhados e no painel Problemas, a dica sobre um nome mostra o tipo e a documentação, e Shift+Alt+F formata pelo servidor quando não há formatador configurado para o tipo. Se o servidor não responde, demora (o completar espera 1,5 s) ou não sabe a resposta, vale a busca pelo nome, como antes; um linter configurado continua valendo no Ctrl+S.
O indicador e a instalação. Na barra de status, um indicador diz o servidor da aba e o estado dele (pyright · pronto, iniciando…, erro, não instalado); o clique nele traz Reiniciar o servidor, Parar o servidor, Mostrar registro… e a configuração. Para instalar, use Ferramentas → Servidor de linguagem → Configurar para .py…: o mesmo assistente dos formatadores mostra o comando e instala com um clique — abrir uma aba nunca oferece instalar nada. O servidor sobe na primeira aba do tipo e para 5 minutos depois que a última fecha; rodam no máximo 4 ao mesmo tempo, um arquivo acima de 1 MB não é enviado a ele e cada arquivo mostra até 500 erros.
Índice
Edição
- Visão geral
- Primeiros passos
- Espaço e janelas
- Painel Atividades: tarefas e mensagens
- Editor de código
- Markdown e wikilinks
- Diagramas (Mermaid)
- Matemática e química (LaTeX)
- Calendário na nota
- Numeração e referência cruzada
- Citações e referências
- Norma do trabalho acadêmico
- Grafo de conexões
- Tabelas (Parquet, CSV, JSON, Excel)
- Área de análise: tabela dinâmica e vários gráficos
- PDF e imagens
- Imagens: marcar um print
- Páginas HTML (.html)
- Imprimir
- Zip como pasta (.zip)
- Blocos (.lnb)
- Tarefas (Kanban / Gantt)
- Tabela personalizada (.lnd)
- Bases (consultas salvas sobre as notas)
Ferramentas
- Busca em arquivos e Pendências
- Versionamento (Git fácil)
- Snapshots e backup
- Revisar mudanças (checkpoints)
- Comparar arquivos (diff)
- Executar código (F5)
- Terminal e CLIs de IA
- Assistente de IA na seleção (Ctrl+K / Ctrl+I)
- IA no seu computador
- Sessões de IA
- Chat com IA
- Testar API HTTP (.lnh)
- Banco de dados (.lnc)
- Conexão SSH (.lns)
- Segurança: Frase-Segura, PIN e Markdown Seguro
- Notas diárias, captura rápida e bandeja
- Reencontrar notas antigas
- Suas notas no celular
- Gravar áudio (voz, reunião) com transcrição por IA
- Notas autoadesivas
- Calendário
- Paleta de comandos
Automação (IA / scripts)
Referência