
Como cualquier desarrollador, estás en constante desarrollo. Usted está aprendiendo nuevas tecnologías leyendo libros, viendo lecciones en línea, asistiendo a algunos cursos, y así sucesivamente. Sabes que si dejas de aprender, te vuelves poco competitivo. ¿Pero alguna vez has pensado en tu desempeño? ¿Cómo se mejora eso? Si no sabe cómo responder, bienvenido debajo del corte.
Nivel 0 - Conquista el miedo
Mecanografía táctil
Esta publicación no trata sobre la escritura táctil . Sin embargo, esta es la primera respuesta a la pregunta anterior. Para comprender el resto de este artículo, debe administrar la escritura táctil.
Introducción de Vim

En esta publicación, le diré cómo mejorar su velocidad de codificación, cómo navegar en el código más rápido y cómo deshacerse del mouse de su computadora. Hablaremos de VIM (el mejor editor de texto conocido por la humanidad). En manos poco hábiles, es solo un editor de texto incómodo, y nadie sabe cómo salir de él. Pero en realidad, es un editor de texto altamente configurable (o complemento para casi cualquier IDE) que está diseñado para permitirle administrar su código de la manera más eficiente. VIM no es solo un editor de texto. No parece una locura, pero imagina que no codificas, hablas con una computadora. Por lo tanto, su proceso de codificación se puede construir en el siguiente monólogo:
- aquí escribiré:
string text = file.ReadAll();
- crea una línea vacía encima de esta
- mover todas las líneas con
TODO
comentarios al final de este archivo - navegue a la función
GetDirectoryFiles
y copie todo su contenido - navegue a esa declaración "if" y reemplace su contenido con el texto del búfer
- centre esta línea en el medio de la pantalla
Pero si quieres bailar, tienes que pagar el gaitero. Para "hablar" con VIM tienes que aprender el idioma que tiene sus propios sustantivos, verbos, adjetivos, etc. Es por eso que VIM no tiene atajos, tiene oraciones (por ejemplo, cambiar la etiqueta interna) . Cuando aprenda los conceptos básicos de este idioma, podrá combinar sus propias oraciones dependiendo de lo que vaya a hacer. Después, comprenderá que ya no necesita su mouse.
No es fácil comenzar a aprender este idioma porque todos sus componentes deberían convertirse en su hábito. Y es un desafío doloroso para usted que puede tomar al menos 2 semanas, así que piense dos veces antes de comenzar. Pero si lo supera, abrirá un nuevo mundo de gestión de código.
El beneficio principal de la entrada rápida de datos no es el tiempo ahorrado en la entrada de datos por segundo, sino la mayor probabilidad de que sus manos puedan seguir el ritmo de su cerebro.
Nivel 1 - Sobrevivir
La característica más distintiva de VIM es que tiene modos. Podemos definir los cuatro principales:
- Modo normal : aquí puede escribir comandos de texto y navegar. Para ingresar a este modo, presione
ESC
- Modo de inserción : en este modo puede escribir texto como en otros editores. Para ingresar a este modo, presione
i
- Modo visual : aquí puede seleccionar texto. Para ingresar a este modo, presione
v
- Modo de comando : comandos del editor (como guardar, abrir, etc.) . Para ingresar a este modo, presione
:
Además, debe aprender la navegación básica que funciona en modo normal. Olvídate de las flechas porque son lentas para trabajar. Cuando está escribiendo, sus dedos generalmente se colocan en el medio de su teclado. Mano izquierda en asdf y mano derecha en jkl; . Y generalmente, está navegando en su código hacia arriba / abajo y rara vez hacia la izquierda / derecha (más adelante hablaremos sobre la navegación dentro de la línea). Entonces la navegación en VIM es la siguiente:
- abajo -
j
(parece una flecha hacia abajo) - arriba -
k
- izquierda -
h
- derecha -
l
Para acostumbrarte al movimiento básico puedes jugar al juego VIM Adventures . En realidad, esto es todo lo que debes saber para comenzar. Por lo tanto, instale el complemento vim en su IDE favorito y practique. Ten en cuenta que va a ser difícil.

Nivel 2 - Confianza
Ok, decidiste aprender VIM y esto es increíble. Asegurémonos de que lo estás haciendo bien. Sus dedos se acostumbraron a la navegación hjkl
y también sabe cómo cambiar los modos de uno a otro. Si es cierto, entonces estás listo.
Obtener el modo de inserción
Usted sabe que puede ingresar a este modo presionando i
en un teclado. Pensemos que significa insertar como insertar texto antes del cursor. También puede presionar a
que significa agregar como texto de adición después del cursor. Es fácil intensificar estos comandos cambiando el caso, por lo que el resultado sería el siguiente: inserto texto antes del primer no en blanco en la línea y A
agrega texto al final de la línea actual.
Para que su trabajo futuro sea más agradable, debe conocer el comando o
que agrega una nueva línea en blanco después de la actual y O
que hace lo mismo pero antes de la línea actual.
Estos son los comandos de cambio de modo de inserción más utilizados en VIM. Si se ajusta a la navegación hjkl
, le llevará un par de días acostumbrarse a estos comandos. Cuanto más sudas en el entrenamiento, menos sangras en la guerra.
Modo normal
Antes de comenzar a aprender el lenguaje VIM, también debemos mejorar nuestras habilidades de navegación. En esta pregunta, el comando f
(significa buscar ) nos ayudará. Este comando se usa para navegar dentro de la línea actual. Escribe f
y una letra a la que desea mover el cursor. fP
mueve el cursor desde la posición actual a la primera aparición de la letra P. Puede encender este comando en F
que hace lo mismo pero cambia la dirección de búsqueda.
Lenguaje vim
Ahora es el momento de convertirse en un loco geek. Debería "hablar" con VIM en el modo normal. En primer lugar, consideremos algunas construcciones del lenguaje VIM:
Sustantivos:
w
- palabra
s
- oración
p
- párrafo
b
- (bloque / paréntesis)
t
- etiqueta
{
, }
, (
, )
, [
, ]
- llaves
"
, '
- comillas
Verbos
v
- visualizarc
- cambiar (eliminar texto y cambiar VIM al modo de inserción )d
- eliminar y copiar (elimina texto y no cambia el modo VIM)y
- tirar (significa copia)
Adverbios:
i
- dentroa
- alrededort
- hastaf
- hasta (inclusive)
Tenga en cuenta que estos comandos pueden funcionar por sí solos, no como espera. Además, cuando crea una oración VIM, debería ser suficiente y todas las construcciones deberían estar en su lugar, de lo contrario, obtendrá otro resultado. Ahora creemos algunas oraciones de VIM fáciles como ejemplo:
ciw
- cambiar palabra interna - elimina la palabra completa debajo del cursor y cambia al modo de inserción, a diferencia de cw
que elimina una palabra del cursor al final de esta palabra.cis
- cambio dentro de la oración.ci"
- cambiar dentro de" llave - elimina todo el texto entre "llaves.da}
- eliminar alrededor} llave: elimina todo el texto dentro de las llaves incluidas ellas.vip
- visual dentro del párrafo - selecciona todos los párrafos.ctp
- cambiar hasta p - eliminar todo de aquí a la letra p .

Para expandir su lenguaje VIM ahora mismo, le sugiero que aprenda la nueva construcción VIM - modificador de número. Consideremos el siguiente código:
function foo() { function bar() {
Y desea eliminar todo el código dentro de {} de la función foo
. Usar el modificador de número es fácil de hacer. Simplemente escriba 2ci{
- cambie dentro de llaves entre 2 veces.

El modificador de número funciona no solo en oraciones, sino que funciona en casi todas partes:
5j
: mueve el cursor hacia abajo 5 veces.2fK
: mueve el cursor a la segunda aparición de basura k en la línea.2iHello <ESC>
- inserta Hello
2 veces.
Ser persistente
A medida que aprenda VIM, encontrará nuevas construcciones de lenguaje y expandirá su lenguaje VIM. Día a día sería más fácil "hablar" con VIM. Todos los comandos y construcciones de lenguaje están estrechamente acoplados y creados para maximizar su rendimiento, y lo demuestran más de 20 años de existencia de VIM.
Nivel 3 - Dominio
Estás en camino de convertirte en un maestro VIM. Como puede encontrar, esto no es tan fácil de aprender VIM. Cuando sientas el poder en tus manos usando VIM, querrás algo más y de esto se trata esta parte. Todos los temas se descubren superficialmente para permitirle decidir lo que desea.
VIM no es un IDE
Sí, VIM no es un IDE a pesar de que puede configurarlo para realizar casi todas las funciones IDE . Estoy seguro de que no dejará su Visual Studio o WebStorm favorito y es por eso que preparé la lista de complementos para su IDE y no solo.
- VSVim para VisualStudio
- VS VIM para VSCode
- IdeaVim para WebStorm, IntelliJ IDEA (y otros productos de Jetbrains)
- El texto sublime tiene el modo Vintage fuera de la caja
- Modo vim para átomo
- XVim para Xcode
- Hardcore! ¡No repitas esto en casa! Google Chrome también tiene extensiones para la navegación tipo VIM. (encuéntralo en Chrome Store)
Aún así, debe tener en cuenta que se puede lograr el máximo rendimiento utilizando solo VIM. Básicamente, es adecuado para pequeños proyectos js / html / css, editar archivos de configuración o simplemente como reemplazo de su bloc de notas ++ :)
Complementos Vim
VIM tiene miles de complementos para cualquier capricho. Aquí puede encontrar casi todo lo que desea desde el explorador de archivos y la integración de git a los sistemas de compilación.
Uno de mis complementos favoritos es EasyMotion . Fue creado para acelerar su navegación en VIM. EasyMotion es muy sofisticado y está profundamente integrado en la filosofía VIM. Por ejemplo, si solo desea navegar a una línea específica detrás de la actual, puede hacerlo presionando la tecla j
varias veces. En comparación, con EasyMotion puede presionar la tecla líder (en mi caso TAB
) j
para resaltar todas las líneas detrás con letras diferentes. Todo lo que queda por hacer es presionar la letra que representa la línea que necesita.

En mi caso, presioné la tecla TAB
y ju
para navegar a la línea apropiada. Fue el ejemplo más fácil y, como de costumbre, en el mundo de VIM, puede crear casi cualquier comando según sus necesidades.
Mapeos
Esta característica decidí considerar por separado. Puede pensar en el mapeo como combinaciones de teclas para todos los modos. Es decir, puede vincular algún patrón para realizar algunas acciones en diferentes modos.
Así que veamos el ejemplo fácil y real. Casi todas las personas que trabajan en VIM no cambian el modo de inserción a normal presionando ESC
. Lo estamos haciendo presionando jj
o jk
porque tenemos la siguiente asignación :imap jj
< ESC
>. imap
significa mapeo en modo inserción y significa que funciona solo en modo inserción.
Puede asignar todo lo que desea hacer y esto le ahorrará tiempo en el futuro. Lea más sobre mapeo aquí .
Características de Vim
Hay muchas cosas que aprender en VIM además de las características mencionadas anteriormente. Definitivamente debe prestar atención a la siguiente lista:
- comandos globales
- buscar y reemplazar
- macros y registros
- tampones
- pestañas
- sangrías y pliegues
- comandos automáticos
Pueden existir en otras herramientas de desarrollo, pero esto es VIM. Día a día te preguntarás cuán brillantes se construyen todas estas cosas. Compruébalo para asegurarte.
Configuracion
Hay muchas configuraciones de VIM que deben almacenarse en algún lugar para usar la misma configuración para todos los editores con el complemento VIM. Y esta es la responsabilidad del archivo .vimrc. De manera predeterminada, en Windows 10 este archivo se encuentra en C:\Users\%username%
. Aquí puede configurar todas las asignaciones, los comandos automáticos, los complementos, la combinación de colores y todas las demás configuraciones. He encontrado un artículo bastante bueno sobre cómo configurar su propio archivo .vimrc para que pueda practicarlo usted mismo.
Nota: No ponga líneas en su .vimrc que no entienda
Impresionantes cursos de VIM:

Que el VIM te acompañe.