Olá! Continuando a série Como migrar o init.vim para a linguagem lua – Parte 3, vamos continuar com a instalação do gerenciador de plugins e um tema mais moderno.
Se você perdeu as postagens anteriores, é recomendável que você siga as etapas anteriores para preparar o ambiente e a estrutura de arquivos necessária, e, finalmente, volte aqui para continuar o processo de migração.
Gerenciador de plugins
Antes de migrar meu init.vim para a linguagem lua, eu utilizava um gerenciador de plugins chamado VimPlug, entretanto, como o objetivo desta série é fazer a migração para a linguagem lua, que é mais rápida e moderna, podemos modernizar também o gerenciador de plugins instalando o lazy.nvim.
lazy.nvim
Para instalar o gerenciador de plugins Lazy, você precisa ter certeza que atende aos requisitos mínimos:
- Neovim versão 0.8.0 ou mais recente
- Git versão 2.19.0 ou mais recente
- Uma fonte do NerdFonts, que possui ícones e símbolos. Este passo é opcional, mas o Neovim fica bem mais bonito se você tiver uma fonte do NerdFonts instalada e configurada no seu terminal.
Adicionando o gerenciador de plugins
Primeiramente, precisamos criar um diretório onde as configurações dos plugins vão ficar. Como um dos objetivos dessa série é facilitar a manutenção, criar arquivos separados para configurar cada item é um fator importante.
Crie a pasta plugins
dentro da pasta ~/.config/nvim/lua/fsg
, que criamos nos posts passados. Lembrando que fsg
é o nome do pacote que eu escolhi anteriormente. Caso você tenha escolhido um nome diferente, faça a substituição de acordo com a sua realidade. No terminal, rode o comando: mkdir ~/.config/nvim/lua/fsg/plugins
Abra o arquivo init.lua
no neovim e altere o conteúdo para ficar da seguinte forma:
-- Bootstrap lazy.nvim
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not (vim.uv or vim.loop).fs_stat(lazypath) then
local lazyrepo = "https://github.com/folke/lazy.nvim.git"
local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath })
if vim.v.shell_error ~= 0 then
vim.api.nvim_echo({
{ "Failed to clone lazy.nvim:\n", "ErrorMsg" },
{ out, "WarningMsg" },
{ "\nPress any key to exit..." },
}, true, {})
vim.fn.getchar()
os.exit(1)
end
end
vim.opt.rtp:prepend(lazypath)
-- Nossos requires
require('fsg.options')
-- Carrega o lazy.nvim
require("lazy").setup({
spec = {
{ import = "fsg.plugins" }
},
rocks = {
enabled = false
}
})
Conforme destacado acima, nosso require('fsg.options')
que havíamos adicionado anteriormente deve ficar depois do bootstrap, e antes da chamada da função de setup do lazy.nvim.
Feita a adição acima no init.lua, basta salvar o arquivo e reiniciar o Neovim. É possível notar que ao abrir o neovim novamente, receberá a seguinte mensagem de erro:

Este erro ocorre pois ainda não adicionamos nenhum arquivo de configuração de plugin na pasta de plugins, o que vamos corrigir na próxima etapa.
Tema
Atualmente existem incontáveis temas que podem ser utilizados no neovim. Existe um site chamado vimcolorschemes, onde é possível pesquisar por temas, e dá pra se perder lá com facilidade, devido à quantidade de opções.
Com a migração do init.nvim para a linguagem lua, vale a pena utilizar temas que aceitam a configuração em lua também, pois ficaria estranho instalar um tema usando vimscript nessa estrutura.
Tokyonight
Um dos temas que eu uso em casa e no trabalho é o tokyonight.nvim. Ele é um tema escuro, com cores suaves, que eu achei bem fácil de acostumar. Usaremos este tema como base para o nosso guia.
Adicionar o plugin tokyonight.nvim é muito fácil, já que ele não possui nenhuma dependência direta de outros plugins ou bibliotecas. Para tal, vamos criar um arquivo chamado theme.lua
dentro da pasta plugins
, que criamos anteriormente. Rode o comando touch ~/.config/nvim/lua/fsg/plugins/theme.lua
ou crie o arquivo pelo próprio neovim, e adicione o seguinte conteúdo:
return {
{
'folke/tokyonight.nvim',
lazy = false,
priority = 1000,
opts = {
style = 'storm',
styles = {
functions = { italic = true }
},
},
config = function(_, opts)
require('tokyonight').setup(opts)
vim.cmd([[colorscheme tokyonight]])
end
}
}
Salve o arquivo e reinicie o Neovim. Quando ele for reaberto, o lazy.nvim vai automaticamente instalar o plugin do tokyonight.nvim, e o tela será aplicado após a instalação.


Agora sim… bem melhor. Caso você não tenha gostado da aparência do tema, existem diversos outros temas disponíveis, como o kanagawa.nvim, e também o nightfox.nvim, que possui algumas variantes. Fica ao seu critério qual tema escolher.
Conclusão
Neste ponto temos configurado o gerenciador de plugins lazy.nvim e adicionamos o primeiro plugin, que é o tema tokyonight.nvim. Na próxima postagem da série, vamos configurar mais alguns plugins e estender um pouco mais as funcionalidades do editor:
- telescope.nvim: Será o nosso file picker
- lualine.nvim: Barra de status aprimorada
- nvim-web-devicons: Ícones diversos que são requisitos para outros plugins
Espero que você tenha gostado de Como migrar o init.vim para a linguagem lua – Parte 3, e esteja ansioso para a próxima parte. Um abraço e até a próxima.