1 año con vim
The good old times
El tiempo vuela cuando estás pensando qué teclas tienes que pulsar para que pase lo que quieres que pase, qué es si no programar. Y si a esto le sumas que también tienes que pensar qué teclas pulsar para que encima tu editor te haga caso, ni te cuento.
Cuando usaba VSCode esto no pasaba. Con el ratón seleccionaba, clickaba, abría menús contextuales, me movía entre archivos, los cerraba, reordenaba, etc.
Ahora eso ya no pasa. El ratón no me sirve para nada, salvo para jugar al Diablo, claro.
Adiós a VSCode
Aunque me documenté bastante entre pros y contras, podemos decir que me lancé bastante al vacío. Hice el curso de The Primeagen, y ahí empezó todo.
Al principio mi productividad era casi nula: tenía que estar todo el rato mirando el teclado, buscando en internet las combinaciones de teclas, e incluso teniendo que volver a mirar las que yo mismo me había configurado 😭.
Si queréis haceros una idea, mi primera configuración de Vim fue esta.
Es bastante simplona. Si nunca has visto Vim, te resultará raro a simple vista.
Vim es un editor de texto dentro de la terminal, y claro, si no tienes ningún plugin ni ninguna configuración, Vim es esto:
Por suerte, gente mucho más lista que yo (y devota) ha creado un sin fin de plugins, esquemas de colores y demás para hacer nuestra vida un poco más alegre.
Enterándome un poco más de la película
Hubo veces que decidí dejarlo, la verdad. Era demasiado complejo. Pero bueno, eso es como todo. Al final lo que tenía que hacer era desarrollar memoria muscular.
Hace tiempo que dejé de utilizar el simple init.vim
a favor de pasar toda mi config a Lua
, así como cambiar otros plugins y demás.
Si queréis usar mi config, la podéis encontrar, clonar, forkear, instalar y de todo aquí. Sigue siendo bastante simple, pero yo estoy muy contento.
Y sobre la memoria muscular... bastente bien la verdad. Si hago una comparación con VSCode, creo que salgo ganando:
Si no recuerdo mal, para buscar a lo largo de todo el proyecto un trozo de código concreto, o ficheros con pattern
en el nombre tenía que hacer CMD + Shift + F
, entonces se abría la columna con el buscador, con el ratón los iba mirando y hacía lo que quisiera hacer. Muchísimo tiempo consumido.
Ahora es <leader>
(en mi caso es apretar la tecla espacio
) y ff
, o sea, <leader>ff
, donde se me abre un menú en el que puedo buscar lo que quiera. Puedo añadir los archivos a una lista e ir cambiando de buffer entre ellos. Y claro, si intento navegar entre ellos con el ratón, Vim me dice que me peine.
También como podréis ver en la imagen, tengo todo un poco más bonito:
Soy programador
Y antes de usar Vim también lo era. Solo que ahora tecleo más que nunca.
Nunca he sentido que la gente que lo usa es superior, ni más productiva o eficaz, pero sí que es verdad que ahora siento que puedo pensar más en hacer código que en pensar cómo hacerlo.
Ahora sé que si estoy buscando una línea en concreto y pulso
<leader>fg {lo que quiero buscar}
gracias a mi config con RipGrep lo tengo en cuestión de milisegundos.
Vim también me ha ayudado a aprender más sobre Regex, por ejemplo, si quiero en un archivo cambiar algo concreto, todas las ocurrencias de "Tata" por "Lindísima", es fácil, tecleo:
:%s/Tata/Lindísima
y todo lo que está desde Tata
a Lindísima
son expresiones regulares, que en este caso es simple, pero tiene todo el potencial que quieras.
Tampoco quiero aburriros con todo lo que se puede hacer o hasta donde ha llegado mi memoria en lo que a combinaciones de teclas respecta, pero sí que diré que lo que más me gusta de Vim es que es configurable de principio a fin.
Con Vim, por lo general, viene un set de atajos predeterminado:
h j k l -> moverte de manera horizontal y vertical
w W e E b B -> para moverte entre palabras (horizontalmente)
{ } -> entre huecos en blanco de manera vertical
0 $ -> principio y fin de línea
En mi caso, por ejemplo, cambié b y B
por q y Q
porque me resultaba más fácil navegar entre palabras hacia atrás y adelante con q w e / Q W E
, y dejar la b
para crear macros.
E igual que esto, los plugins funcionan totalmente igual: si quiero un plugin cuando abro Vim, lo configuro de esta manera, si quiero que otros se carguen solo cuando ocurre algo concreto, también.
Que quiero usar git? <leader>gg
para abrir LazyGit y por supuesto, con el mismo tema y esquema de colores que tengo configurado.
PD: si no usáis LazyGit aunque no uséis Vim, os lo recomiendo.
Y por acabar con atajos: todo son combinables, lo que se llaman Vim Motions
, por ejemplo:
d -> borrar
c -> cambiar
dw -> borrar palabra (este nos deja en modo normal)
cw -> borrar palabra (este nos deja en modo insertar, que es el modo escribir, vaya)
Basta de chapa. Conclusión.
A mi, tal y como tengo configurado Vim, me encanta. Ahora mismo no podría trabajar sin Vim, me resulta raro, de hecho cuando tengo que hacer algo con VSCode por lo que sea, tengo instalado el plugin de Vim para poder usarlo ahí dentro.
Mi experiencia ha acabado siendo positiva, productiva y sobre todo divertida. Sentir que tengo las mismas APM que un coreano jugando a League of Legends es increíble.
Este post no es apología de Vim, pero de verdad, si tenéis tiempo (que lo necesitáis para aprender), dadle una oportunidad. No os arrepentiréis.
Salir de Vim, el secreto mejor guardado
:q -> salir
:w -> guardar
:wq -> guardar y salir
:q! -> salir sin guardar