-- arquivo de configuração do neovim, para isso basta criar o arquivo `~/.config/nvim/init.lua` e adicionar as seguintes linhas: -- https://github.com/neovim/neovim/tree/master local vim = vim -- ==================================================================================== -- ⭐ ESSENCIAL - Configurações obrigatórias para funcionamento correto -- ==================================================================================== -- Desativa compatibilidade com Vi antigo, permitindo usar recursos modernos do Vim/Neovim vim.o.compatible = false -- Detecta o tipo de arquivo e carrega automaticamente plugins e indentação apropriados -- (Sem equivalente nativo em Lua - essa linha DEVE usar VimScript) vim.cmd("filetype plugin indent on") -- Ativa a sintaxe de highlight para deixar o código colorido -- (Forma nativa: vim.treesitter.start() é mais moderno) vim.cmd("syntax enable") -- Carrega configurações de arquivos .vim, .lua, .nvimrc e .exrc na pasta de projeto vim.o.exrc = true -- Ativa modo seguro para bloquear comandos preiudosos ao carregar arquivos de terceiros vim.o.secure = true -- Define a tecla de espaço como "Leader Key" (tecla modificadora para atalhos customizados) vim.g.mapleader = " " -- ==================================================================================== -- 🔧 RECOMENDADO - Melhor usabilidade e comportamento esperado -- ==================================================================================== -- Exibe os números das linhas no lado esquerdo do editor vim.opt.number = true -- Mostra números relativos (distância da linha do cursor), útil para navegação rápida vim.o.relativenumber = true vim.o.scrolloff = 4 -- Herda a indentação da linha anterior automaticamente ao criar nova linha vim.o.autoindent = true -- Converte caracteres Tab em espaços (importante para compatibilidade entre editores) vim.o.expandtab = true -- Define quantos espaços ocupam UMA tabulação visual no arquivo vim.o.tabstop = 4 -- Define quantos espaços o Neovim coloca ao pressionar Tab (mesmo convertendo em espaços) -- Por exemplo: ao pressionar Tab, o cursor pula 4 espaços. Ao pressionar Backspace, apaga 4 espaços -- Diferente de tabstop que é só visual - softtabstop define o "tamanho tático" do Tab vim.o.softtabstop = 4 -- Controla a quantidade de espaços usados para indentação automática -- Afeta operações como << (diminuir indentação) e >> (aumentar indentação), -- bem como indentação automática feita por plugins. Neste caso, cada nível de indentação vim.o.shiftwidth = 4 -- Ativa suporte a clipboard do sistema (copia/cola com "+y" ou "*y funciona com sistema) vim.o.clipboard = "unnamedplus" -- Ativa mouse para clicar, arrastar e selecionar texto no editor em todos os modos -- "a" = all modes (normal, insert, command-line, visual) vim.o.mouse = "" -- ==================================================================================== -- 👀 BUSCA E INTERFACE - Melhor visualização durante edição -- ==================================================================================== -- Destaca a linha inteira onde o cursor está (linha horizontal) vim.o.cursorline = true -- dá para brincar com exibindo só o destaque no numero da liilha, ou então da linhas, ambos vim.o.cursorlineopt = "line,number" -- Destaca todos os resultados de uma busca anterior até fazer uma nova busca vim.o.hlsearch = true -- Busca incremental: mostra resultados enquanto você digita a busca vim.o.incsearch = true -- Mostra uma coluna de referência em 120 e 160 caracteres para manter linhas legíveis vim.o.colorcolumn = "80,120,140" -- Destaca automaticamente parênteses/colchetes/chaves correspondentes vim.o.showmatch = true -- Mostra qual modo você está (INSERT, VISUAL, COMMAND, etc) na barra inferior vim.o.showmode = true -- quando testei essa config, lá na barra de titulo do emulador -- de terminal aparece o arquivo em questão como titulo vim.o.title = true -- quando divide a janela verticalmente, mantem o buffer atual a direita vim.o.splitright = true -- quando divide a tela na horizontal -- mantem o buffer atual em cima vim.o.splitbelow = true -- ==================================================================================== -- 📝 DESCOMENTADO - Configurações adicionais disponíveis -- ==================================================================================== -- ainda não encontrei aonde faça a diferença, dado que o terminal já usa vim.o.fileencodings = 'uft-8' -- ainda não encontrei aonde faça a diferença, dado que o terminal já usa vim.o.encoding = 'utf-8' -- oferece a opção de salvar quando fecha o buffer vim.o.confirm = true vim.o.smartcase = true vim.o.ignorecase = true vim.o.signcolumn = 'yes' vim.o.wrap = true -- retrobox, habamax, fruit vim.cmd.colorscheme('habamax') require('mapping') require('mini_nvim') vim.o.wildmode = "longest:list" vim.o.backspace=indent,eol,start vim.o.listchars="tab:>-,trail:-,nbsp:+" vim.o.fillchars="eob:~,lastline:@" vim.o.hidden = true -- require('plugs') -- descomente para carregar arquivo de plugins -- vim.g.NERDTreeShowHidden=1 -- descomente para mostrar arquivos ocultos no NERDTree -- Telescópio -- https://github.com/nvim-telescope/telescope.nvim