Introducción a Vim para personas que usan código de Visual Studio

Consejos útiles para llevar la genialidad de Visual Studio Code a Vim.

Materia principal

Quiero comenzar diciendo que este no es un artículo que avergüence al editor. Puede utilizar el editor de texto que desee. Realmente no importa. Solo estoy escribiendo esto porque encontré un nivel de productividad en Vim que no había tenido en ninguno de los editores que usé antes (Sublime Text, Atom o VSCode).

Si ha oído hablar de Vim y desea probarlo, espero que este artículo pueda brindarle un poco de familiaridad que encontrará en VSCode.

¿Por qué Vim?

Hay muchas razones para usar Vim, así que aquí hay algunas mías.

Mantén tus manos en 10 y 2

Cuando solo usa el teclado, habrá un aumento de velocidad inherente simplemente por no tener que mover físicamente las manos. Y bueno, tal vez seas un cinturón negro en el movimiento del mouse, y puedas moverte hacia adelante con una velocidad invisible a simple vista. Para el resto de nosotros, simples humanos, lleva tiempo.

Hagamos algunos cálculos rápidos.

Se necesitan 600 ms para mover la mano de las "teclas de inicio" al mouse. En promedio, por el bien de la discusión, lo hago una vez por minuto mientras escribo código. Ya sea para desplazarse, navegar a un nuevo archivo o algo similar.

600 (tiempo perdido en ms) x 60 (veces por hora) x 5 (horas que en realidad estoy codificando) = 180,000ms desperdiciados =

3 minutos. Cada. Día.

Sí, está bien, tal vez eso no suene tan mal, pero esos 3 minutos se pueden dedicar a escribir una función o refactorizar el código, ¡sin agitar la mano como si fuera Harry Potter!

Velocidad

Mi cita favorita que describe cómo es codificar en VIM:

"Codifique a la velocidad del pensamiento"

Vim se basa en la idea de que te estás comunicando directamente con tu computadora. Dile lo que quieres y lo hace por ti. Lo que más me abrió los ojos fue este pequeño dato:

Para borrar todo entre dos objetos (paréntesis, comillas, etc.), es tan simple como:

di'

Esa es solo la superficie de las increíbles cosas taquigráficas que puedes hacer con Vim.

¡Soy un verdadero programador!

Parte del viaje de aprender VIM es exponerse a cómo funciona UNIX. Tengo la impresión de que cuanto más te expongas a cosas como bash, mejor programador serás.

Lo más probable es que tenga una configuración de línea de comandos bastante agradable. ¿No sería bueno si su editor de código y su línea de comandos funcionaran en conjunto?

¿Cómo sales de Vim?

Es muy probable que alguna vez haya editado un archivo en un servidor Linux y no haya podido averiguar cómo salir del archivo. Digamos, por ejemplo, cambiar una clave SSH en Digital Ocean. Si conoce VIM ... ¡no tiene que preocuparse por eso!

La verdadera razón por la que me cambié a Vim

Tiempo de honestidad. El verdadero catalizador para querer cambiar a Vim fue ver a Kyle Mathews (creador de Gatsby.js) usándolo durante una demostración.

Funciones de VS Code y sus equivalentes

¿Convencido? ¡Genial, aquí tienes algunas herramientas!

Sistema de complementos

Vim por sí solo es bastante básico. Para agregar complementos, debemos tener un mecanismo para administrarlos. Ingrese el enchufe:

junegunn / vim-plug

Nota: existen algunos administradores de complementos. Aterricé en Plug sin ninguna razón en particular. Me gusta y no he tenido problemas con él. FYI, Vundle está en desuso.

Búsqueda de archivos

Ha habido un montón de soluciones para la búsqueda de archivos a lo largo de los años, como lo indica la multitud de respuestas en los foros. Probé un par de diferentes, pero llegué a esta combinación:

Buscador difuso (fzf) + Ripgrep

Fzf es una búsqueda difusa realmente bien construida / mantenida que funciona tanto en la línea de comandos como en vim.

Nota: Es posible que vea Ag (buscador de plata) en muchos artículos; sin embargo, el complemento vim relacionado con Ag ya no se mantiene, por lo que se sugiere usar RipGrep.

Intellisense

El sistema de autocompletado (Intellisense) en VSCode es posiblemente su mejor característica. ¡Por suerte para nosotros, ha sido transferido a Vim!

neoclide / coc.nvim

CoC tiene su propio sistema de extensión, que refleja el de VSCodes. Es fácil de usar y está bien documentado (la parte más importante).

Nota: Es posible que vea algunos artículos antiguos que hablan de YouCompleteMe, pero hasta donde yo sé, eso ya no se mantiene.

Explorador del sistema de archivos

VSCode, como la mayoría de los editores de texto modernos, viene con un explorador de archivos. El nativo de Vim netrwestá bien, y he visto bastantes artículos que dicen que no necesitas nada más, como aquí. Sin embargo, encuentro que NERDTree es demasiado útil para no usarlo.

scrooloose / nerdtree

Integración de Git

Tengo que ser honesto aquí, hago la mayoría de mis cosas de git directamente en Iterm. Sin embargo, VSCode tiene una pantalla dividida Git Diff increíblemente agradable. Para obtener ese nivel de integración de git, consulte este complemento:

tpope / vim-fugitive

Complementos adicionales que quizás desee

Estas son algunas de las cosas que usé en Visual Studio Code y que quería incorporar a Vim.

Corchetes de autocompletar

Este pequeño y agradable paquete cerrará automáticamente esos molestos paréntesis.

jiangmiao / pares automáticos

Iconos de archivo

Esto agregará íconos a cosas como NERDTree.

ryanoasis / vim-devicons

Más bonita

¿No lo sabrías, pero el equipo oficial más bonito tiene un complemento vim? ¡Que agradable! Además, increíblemente fácil de configurar.

más bonita / vim-más bonita

Haz que funcione en el guardado automático, consulta este artículo.

Fragmentos

¿No lo sabría, usando Conquer of Completion, puede importar fragmentos de VSCode?

Mira esto para mostrarte cómo hacer eso:

neoclide / coc.nvim

Aquí está el paquete de fragmentos de React que estoy usando.

xabikos / vscode-react

Cosas adicionales

El hogar de los complementos de Vim es Vim Awesome.

Vim impresionante

Gran lugar para ver a la gente usar Vim:

Vimcasts - Screencasts gratuitos sobre el editor de texto Vim

Archivos de puntos

Tengo algunas claves reasignadas para facilitar las cosas. Mira mis archivos de puntos para todos esos.

DarthOstrich / dotfiles

Pensamientos finales

Mi viaje

Solo uso Vim ahora, después de pasar aproximadamente un año para aprenderlo. Inicialmente, lo usaba solo para mis proyectos personales, porque mi nivel de productividad era bajo. Tuve que seguir deteniéndome para buscar cómo hacer algo. Sin embargo, eliminé VSCode por completo hace unos 4 meses y no planeo volver atrás.

Se necesita disciplina

Aprender Vim puede parecer abrumador y, francamente, lo es. Requiere disciplina autoimpuesta. Sin embargo, ¿no está todo en desarrollo? No hay ninguna herramienta / lenguaje / marco que haya aprendido que no requiera algún nivel de práctica deliberada.

Vim es una elección de estilo de vida. Le tomará un tiempo acostumbrarse y, a veces, será frustrante. Sin embargo, si lo cumple, le garantizo que mejorará su flujo de trabajo. Si tiene sugerencias o preguntas adicionales, déjelas a continuación. Como siempre, ¡feliz codificación!

Recursos adicionales para aprender

Dominando Vim rápidamente - Jovica Ilic

8 trucos de Vim que te llevarán de principiante a experto

Referencias

Cambiar a Vim

10 sencillos consejos de Linux que me ahorran el 50% de mi tiempo en la línea de comandos