Instalación e setup básico de NeoVim con LazyVim
Introducción
Levo xa un tempo traballando con distintos editores ou IDEs para programar.
No seu día pasei por Eclipse, Notepad++, Sublime Text, PhpStorm, Pycharm e Intellij.
Entre eles hai moi boas ferramentas.
Pero o que me leva a probar algo distinto, algo como Neovim é a necesidade de
buscar un editor lixeiro.
Non fai moito traballaba cun portátil reciclado, un Thinkpad,
se non lembro mal o X202. Pero claro, con este equipo traballar con Docker e co PhpStorm,
facía que o equipo se arrastrase polo alto consumo de memoria.
Nese momento, de cando en cando, editaba algún ficheiro con vim,
pero botaba moitas cousas en falla. Non deixaba de ser un editor de texto plano.
Quedou aí a miña aventura con este editor. Pero co tempo,
vendo a outra xente traballar con el, fixo que me picase a curiosidade.
E fai un par de semanas un compañeiro do traballo,
faloume de que estaba a tentar mudar o VSCode polo NeoVim, con LazyVim como base.
Así que levo un par de semanas falando con el e probando complementos.
NeoVim é un fork de Vim, con opcións máis actualizadas.
Así algúns complementos chegan antes a Neovim, do que a Vim.
O que está a facer que moita xente opte por este editor,
en troques do máis conservador Vim.
LazyVim pola súa banda, ven a ser un conxunto de ferramentas montadas sobre NeoVim,
preparado para traballar en canto se instala. Inclúe por exemplo unha árbore do proxecto,
con Neo-tree, para ver os directorios e carpetas.
Inclúe un buscador de arquivos por nome ou contido, etc.
Así que vou reflexar aquí para futuras consultas os pasos que levo vistos, ate o de agora.
Instalación e requisitos para LazyVim
Para comezar LazyVim ten uns requisitos a cumprir para poder instalalo. Ao momento de escribir isto son os seguintes:
- Neovim >= 0.9.0 compilado con LuaJIT. Neste momento en Debian 12, van pola versión 0.7.2. Despois veremos como salvar este punto.
- Git >= 2.19.0, aquí hai sorte e en Debian van pola 2.39.2
- Nerd Fonts (v3.0 ou superior) Márcano como opcional, pero si que é certo que de non tela, non veremos as iconas dos distintos ficheiros.
- Lazygit. Tamén opcional. Pero é unha ferramenta moi útil para traballar con Git, case de forma gráfica, como poden facer outras ferramentas.
- Un compilador de C para nvim-treesitter
- Para telescope.nvim:
- live grep: ripgrep
- find files: fd
NOTA: non saen no listado de requisitos, nin tan siquera como opcionais, pero se queremos instalar cousas como prettier, ou LSP de typescript, PHP, etc; hai outros requisitos. Por exemplo para poder instalar un LSP de PHP precisaremos ter instalado composer, ocorre o mesmo con Prettier que precisaremos ter instalado npm. É de pensar que ocorrerá o mesmo con ferramentas de Python, pero semella que o necesario xa ven ca instalación base de Debian 12.
Instalar unha versión superior de NeoVim á que ven con Debian 12
Se entramos no github de neovim, veremos no apartado de Linux dúas opcións a través de arquivos precompilados ou con AppImage. Neste caso escollín esta opción, xa ven empaquetada co que precisa. Así pois é cousa de seguir os pasos que indican.
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim.appimage
chmod u+x nvim.appimage
./nvim.appimage
Despois de ter o arquivo movémolo a onde queiramos e engadimos a ruta ao noso .bashrc, no meu caso con esta ruta:
export PATH="$PATH:/usr/local/bin/"
O resto de requisitos poden saír dos repos de Debian 12, sen incompatibilidades.
Instalando LazyVim dende o respositorio do proxecto
De entrada recomendan salvar a nosa configuración de NeoVim, pero no meu caso parto dunha instalación limpa, así que omito este paso. Despois indicarei como nos imos ocupar tamén de manter no futuro a configuración.
Entramos no directorio .config/nvim/ da nosa home. E clonamos o repo de LazyVim:
git clone https://github.com/LazyVim/starter ~/.config/nvim
Unha vez feito borramos o directorio .git rm -rf ~/.config/nvim/.git
E xa estaría instalado. Agora ao executar nvim accederemos e instalaránse as cousas que veñen configuradas de base.
Configuración de NeoVim e LazyVim: persoalización para unha maior eficiencia
Non vou entrar na configuración en sí. Simplemente dicir que engadín o directorio, da configuración de nvim, ao meu repo de dotfiles, co que realmente a miña configuración está cos meus proxectos de git. Así que o que fixen foi borrar a carpeta de configuración e crear un enlaze símbolico a onde realmente está, con:
ln -s ruta_dotfiles/nvim nvim
Instalando plugins e LSP: transformando un editor nalgo máis próximo ao IDE
Unha vez temos a configuración básica, hai algúns complementos que non estaban nela
e que atopo moi útiles.
Para comezar instalei LSP para Markdown, Yaml, Docker, Python, Rust e Typescript.
Tamén instalei o asistente Codeium, do que falarei tamén nun intre.
A instalación dos LSP ou linter con LazyVim é moi sinxela, xa que simplemente
faremos uso da ferramenta Mason, que xa ven co paquete base.
Así que simplemente pulsando dende o modo normal os ‘:’ ábrenos a liña de comandos
e aí escribimos Mason e pulsamos o tabulador para ver as opcións.
No noso caso queremos MasonInstall e se pulsamos tabulador de volta,
amósanos as opcións que temos para instalar. Se algo fose mal,
con MasonLog podemos ver o que errou.
O asistente Codeium, xunto con Copilot, Tabnine e outros,
pódense instalar dende os LazyExtras.
Igual ca antes podemos pulsar ‘:’ e LazyExtras ou no menú principal pulsar ‘x’.
Primeiros pasos e algúns atallos
Unha vez temos estes plugins imos ver como movernos polo básico.
Por exemplo para abrir árbore dun directorio, pulsamos espazo+e
.
Aquí podemos ver a estrutura enteira, do directorio onde executamos NeoVim.
Para movernos por aquí utilizaremos ou as frechas ou as teclas de
movemento do propio editor h, j, k, l
e enter para abrir un arquivo.
Pero non é todo, con r podemos renomear un arquivo, con d podemos mover
un arquivo ou directorio, con a podemos engadir ficheiros
ou directorios. Para agregar un directorio ten que rematar en ‘/’.
Con c podemos copiar a outro sitio.
Se imos abrindo varios arquivos, na zona superior veremos varias lapelas,
que serán os buffers dos ficheiros.
Para movernos entre os distintos buffers pulsaremos H para ir ao anterior
e L para o seguinte. Se temos aberta a árbore de directorios ou temos a vista
dividida, podemos ir de unha a outra pulsando control+dirección a ir (h, j, k, l)
Agora se por exemplo quixese facer un commit, tería que dende o modo normal pulsar
espazo+ g g
e abrirá LazyGit. Para movernos polas distintas seccións pulsamos
os números, tal como indica a interfaz.
Para engadir arquivos ao commit, pulsamos a, para commitear c, con d descartamos
os cambios e con q saímos.
Hai outros atallos moi interesantes para ir descubrindo, por exemplo para pechar unha
lapela ou buffer, pulsaremos espazo + b d
de buffer delete.
Outros atallos xa son propios de cando estamos a programar,
por exemplo con espazo + c
preséntanos opcións de código,
como a para accións que nos ofrecerá extraer funcións, variables, etc.
Podemos ver máis destes atallos seguindo este enlace aos keymaps
Codeium
Unha vez temos instalado Codeium, se non temos conta,
precisamos ir á sua web e crear unha conta.
Xa no NeoVim escribimos o comando Codeium Auth
que nos amosará un enlace que nos
leva a obter un token para a nosa conta.
Pegamos o token e pulsamos enter. E xa estaría listo.
Recordar simplemente que a licenza individual de Codeium é gratuíta e,
polo que din, de por vida.
Unha vez feito iso xa podemos comezar a picar código ou o que sexa, que irán aparecendo as suxerencias de Codeium. No caso de que aparezan varias podemos ir por elas cas frechas e pulsar enter na que queiramos aceptar. No momento de escribir este artigo, faime suxerencias de textos por exemplo, pero vese que o galego non é o seu forte. Pero no código xa sexa en base ao resto da función, ao nome da función ou por un comentario faranos suxerencias de código. Se non lembro mal, neste momento Codeium soporta unhas setenta linguaxes de programación e nas tendas de outros IDEs, ten mellor valoración que Copilot.
Conclusión
De momento non utilicei moito o editor e máis ca nada para editar ficheiros Yaml ou algo de Markdown como este artigo. Pero dende logo síntese moi cómodo. Non ten nada que ver cun Vim a medio configurar. Definitivamente farei algún desenvolvemento con NeoVim, a ver como vai a depuración as suxerencias e demáis. No eido laboral, si que quedarei co PhpStorm xa que quen paga obriga, pero por aquí iremos vendo como vai isto con proxectos en Python, Rust ou Typescript.
Posiblemente no futuro engada algún artigo de actualización ou sobre novos plugins.