Video grabado: https://www.youtube.com/watch?v=XYQnyJVGk-4&t=1s
Apéndice: https://kodingwarrior.github.io/wiki/appendix/excelcon-2nd/
El 2023-06-03 di una charla en la 2.ª ExcelCon con el tema "Dar un salto cuántico de productividad con Neovim", y aunque sea tarde, también la comparto aquí.
Resumen de la presentación
¿Cómo aumentó mi productividad con solo usar Neovim?
- Al unificar en Neovim herramientas que usaba alternando como VSCode, Notion, RoamResearch y GitKraken, se redujo la carga cognitiva innecesaria.
- Aunque alterno entre macOS y archilinux, puedo mantener un entorno de desarrollo consistente en cualquier lugar (
dotfiles). - Dejé de preocuparme por el rendimiento del equipo.
- Before: al trabajar con varias aplicaciones abiertas como AndroidStudio, VSCode y RoamResearch, se producía thrashing con frecuencia. Incluso escribir código tomaba más tiempo / After: ya ni siquiera se escucha el sonido de un avión despegando. El uso de memoria también es bastante bajo.
3 pasos para mejorar la productividad
- La mejora de la productividad debe comenzar con la metacognición de analizar en qué acciones estoy gastando tiempo innecesariamente.
- Primero, familiarízate con las herramientas que usas.
- Revisa qué tareas haces repetidamente y busca formas de reducir el tiempo que te toma hacerlas. (ej. plantillas, plugins, macros, snippets, …)
- En el proceso del punto 2, elige lo que mejor se adapte a ti y conviértelo en hábito.
Organicé en el blog, como apéndice, los temas que no pude explicar por falta de tiempo.
- Starter kits para principiantes de Neovim, incluyendo AstroNvim y LazyNvim
- Plugin tree-sitter exclusivo para neovim
nvim-cmp, que ofrece funciones de autocompletado
También administro una comunidad de Discord (vim.kr) para quienes quieren usar bien Vim, así que les agradeceré mucho su interés :)
11 comentarios
https://github.com/github/copilot.vim
He estado usando muy bien VS Code Copilot, así que me puse a buscar y también existe un plugin de Copilot para Neovim. Había estado pensando en probarlo, pero creo que por fin voy a darle una oportunidad a Neovim.
En la primera empresa a la que me cambié, desarrollaban conectándose de forma remota a un servidor Linux con vim + tmux.
Me impresionó que en ese entorno se pudiera hacer programación en pareja remota. (los cambios en el código se reflejaban al instante y también se compartía la terminal)
Fue con los dotfiles del servidor remoto (
.vimrc,.bashrc) que empecé a meterme en serio a vim.Recuerdo que había ejemplos y eso me permitió empezar con tranquilidad, así que conecto mucho con lo que dice el texto sobre los dotfiles jaja
Yo también me pasé de NVIm a vscode, pero al ver este post me dieron ganas de volver. jaja
Me alegra mucho que se hable de editores de texto. Al final, si aceptas que todo se trata de trabajar con texto, poner atención a tu entorno de texto deja de sentirse como una carga. Yo empecé a usar Emacs desde el año pasado y de verdad terminé pudiendo hacer todo con el teclado. Como mencionaste en el punto 0, he logrado reducir bastante el tiempo innecesario. ¡Ojalá que vim.kr siga creciendo!!
No sé si me lo perdí en el video, así que quisiera hacer una pregunta. Cuando dijo que reemplazó Notion con neovim, ¿quiere decir que armó un sistema tipo wiki en neovim y usa eso, o que existe alguna librería para manejar Notion desde neovim? La intención de mi pregunta es saber si el Notion que usamos en la empresa también se puede manejar desde neovim.
Por supuesto, no estaba manipulando Notion ni nada por el estilo.
Si Notion ofreciera una API, en teoría sería posible manipularlo desde neovim, pero hasta ahora no he visto que se haya intentado algo así.
No me atrevo a asegurarlo porque si el notion que se usa en la empresa puede manipularse desde neovim, parece que habría cuestiones de política interna involucradas.
Aunque Notion ofrece una API, en la práctica se me ocurrieron varias limitaciones, así que la implementación estaba detenida; me preguntaba si habría una buena solución. Gracias por la respuesta :D
Se parece más a que construí un sistema wiki. Hay un plugin llamado
telekasten.nvimque satisface más del 100% de mis requisitos y ya trae prácticamente todas las funciones que uno podría necesitar.La función de plantillas también está bastante bien. Y la función para gestionar documentación interna también cumple muy bien.
Una de las funciones que personalmente más me gustaba, la visualización de grafos, también la fui puliendo yo mismo con una librería llamada
force-graph.Como creo que puede servir de referencia, también dejo enlaces al código fuente relacionado.
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- genera los datos de nodos (documentos)/aristas (enlaces internos) necesarios para la visualización del grafo
https://github.com/kodingwarrior/kodingwarrior.github.io/… -- visualización basada en
force-graphYo también uso neovim y sentí que descubrí un mundo nuevo. Por eso intenté convencer a los desarrolladores a mi alrededor de que lo probaran, pero nadie se pasó. Mientras usaba neovim, llegué a entender con más detalle las cosas necesarias para armar un entorno de desarrollo. Tampoco sabía que existía una comunidad coreana de Vim; voy a buscarla. ¡Qué gusto me da!
Depende de la empresa y del equipo, pero... sorprendentemente hay mucha gente que no tiene mucho interés en configurar su entorno de desarrollo...
Parece que para usar bien Vim, al final hay que usar también zsh y tmux juntos.
A diferencia de Emacs, por suerte no hace falta tener barba.