¿Por qué la gente usa Vim?

Usted tiene dos quejas aquí:

Sin auto completo.

vim, de hecho, tiene auto completo, y ha tenido durante mucho tiempo.

Lo sublime y el notepad ++ son más rápidos.

Es difícil responder a esto porque no proporciona datos o medidas cualitativas para responder. ¿Cómo puedo argumentar si vim es más rápido o no si no sé en qué hechos se basa esto?

Para mí, vim es mucho más rápido. Siempre tengo que quitar mis dedos de la fila de casa donde se supone que deben estar las manos de un mecanógrafo, y así interrumpir mi escritura. Esto me ralentiza drásticamente.

Peor aún es tener que quitar mi mano del teclado solo para mover el mouse. Luego tengo que volver a colocar mi mano en la fila de casa, donde nunca debería haber salido en primer lugar. Esto es una ralentización radical en escribir de nuevo.

Además de esto, vim corre por todas partes. Notepad ++ no se ejecutará en el sistema OpenVMS que solía administrar. Sublime no se ejecutará en ese servidor Unix o Linux sin GUI adjunta. Estos editores requieren un entorno de ventanas completo, y vim no.

Una nota al margen.

vim no es el vi original, sino un clon. Sin embargo, incluso el original sigue siendo más rápido (como vim) como lo describí, y solo usó 128k para hacerlo.

Sin embargo, el auto completado es exclusivo de vim: vi no lo tenía.

Lo que te falta es la experiencia. Vim un editor increíblemente poderoso, programable y personalizable una vez que lo aprendes, pero tiene una curva de aprendizaje empinada. Vim o algún otro vi clon está presente de forma predeterminada en todos los sistemas basados ​​en Unix realizados en los últimos 30 años. Solo por esa razón, al menos debes saber los conceptos básicos de cómo usarlo.

Vi un editor basado en comandos, por lo que requiere una forma de pensar diferente a la del editor de punto y clic típico de la GUI; requiere que planifiques lo que quieres hacer en lugar de solo hacer purgar las teclas hasta que obtengas lo que quieres. Por ejemplo, ¿cómo borras 20 líneas en notepad ++? Probablemente resalte un bloque de texto con el mouse y luego presione eliminar. O bien, pulsa shift-downarrow 20 veces, luego pulsa eliminar. En vi, es 20dd – 5 pulsaciones versus 21. ¿Qué sucede si desea eliminar 100 líneas? Ahora son 6 pulsaciones contra 101. Y eso es solo un ejemplo muy simple. Vi / vim puede hacer manipulaciones de texto mucho más complejas con muy poco esfuerzo.

Contrariamente a su afirmación, vim tiene autocompletado (y resaltado de sintaxis, auto-indentación, y todas las otras características que encontrará en cualquier otro editor de código) … solo necesita instalar los complementos apropiados.

Hay varios tipos de operaciones de edición complejas posibles en Vi que simplemente no se realizan fácilmente en otros editores de texto sin muchas acciones repetitivas por parte de los programadores.

Tenga en cuenta que dije editor de texto . Eso es lo que es Vi. En mi opinión, no es ni puede convertirse en un IDE porque no tiene un lenguaje de programación suficientemente poderoso, flexible y expresivo debajo de él.

Así que sí, IDEA o Eclipse te dan editores de código que construyen modelos de la estructura de origen que permiten todo tipo de cosas que Vi no puede hacer.

Para mí, los IDE (uso IDEA) y Vi son complementarios. Escribo código con IDEA y realizo manipulaciones de texto sofisticadas con Vi.

(Tenga en cuenta que lo llamo Vi … Eso es porque cuando supe que era Vi, el Vi original de Berkeley).

Vim es como cualquier comida gourmet, es un sabor adquirido. Debería aprenderlo (por sus características, no solo ‘i’, ‘: w’ y ‘: q’) y usarlo por algún tiempo, digamos un mes o dos. Entonces puedes compararlo bastante con otros editores.

Vim deriva su poder y su fama general del hecho de que puede realizar tareas en un número mínimo de pulsaciones de teclas, en un terminal remoto (por muy lento que sea), y también sin depender del mouse. Incluso con las velocidades actuales de Internet y la excelente conectividad, me encuentro con un solo terminal de vez en cuando; Para editar, te quedas con vim, emacs, nano / pico, etc. (He oído que emacs es igualmente poderoso y tiene su propia base de usuarios. Me acabo de acostumbrar a vim).

Intento usar el mejor de los dos mundos … modo vim dentro de un IDE. – Eclipse con el plugin Vrapper. De hecho, muchos IDE completos proporcionan un modo vim para el editor (ya sea integrado o mediante complementos).

Debido a que “vim” (o peor, “vi”) está disponible en casi todos los sistemas basados ​​en * nix que encontrará en cada encuentro (al igual que el shell POSIX “sh” – de los cuales “bash” es un superconjunto). Trabajaré sobre sesiones “ssh” (o sesiones ssh que se conectan con ssh a otras sesiones ssh sobre sesiones ssh, etc.)

Es un tipo de habilidad de denominador menos común que te permitirá trabajar en muchas situaciones (horribles).

Por supuesto, si la única forma en que puede realizar cambios en un proyecto escrito en un idioma en particular es a través de un IDE basado en GUI (¿ese es el caso de MS Visual C #, et al.?), Y usted solo codifica eso, entonces sus requisitos son más amplios que los de un programador de scripts de shell / python / perl / ruby ​​/ php.

Eres parcialmente correcto.

VIM es de la época en que había modo de texto en los terminales y varios elementos de la GUI como botones, casillas de verificación, listas desplegables, menús desplegables o simplemente no estaban allí o no tenía mucho sentido pasar por la enorme tarea de Hacer que un modo de texto se comporte como un modo gráfico. GUI en forma limitada estaba allí, pero se consideró una novedad. Todo lo que hizo el sistema operativo fue a través de una pantalla completa en modo de texto para la aplicación, de modo que en un momento una sola aplicación ocupa toda la pantalla basada en texto, que es lo que hace VIM en la actualidad.

por lo tanto, los creadores de VIM diseñaron la aplicación de acuerdo con lo que se usaba comúnmente: una gran pantalla en blanco como área de trabajo y varias combinaciones de teclas para invocar alguna funcionalidad. No hay menús, ni botones, ni barras de progreso, etc.

Con el tiempo las cosas avanzaron, procesadores más rápidos, memoria grande y GUI como predeterminados. para entonces, un gran número de personas que habían estado usando VIM durante tanto tiempo desarrollaron un amor por VIM. Y el amor no necesita razonamiento. está justo allí. y los amantes encontrarán mil maneras de justificarse y dirán que son mucho mejores con VIM que con Netbeans, Visual Studio, Eclipse, Noepad ++, el bloc de notas de los programadores, etc.

Es análogo a un niño que recibió una bicicleta para moverse con facilidad. Ahora, con el tiempo, el niño creció, las cosas a su alrededor cambiaron, pero el amor por la bicicleta se quedó allí. Así que aunque la gente a su alrededor usa Audi, Mercedez, BMW, Ford, etc., diría

  • Comenzar toma mucho tiempo en los autos, mientras que arrancar una bicicleta es como si fuera instantáneo.
  • Los autos tienen un cuadro pesado, la bicicleta es liviana, así que puedes personalizarla a tu gusto
  • Hay tantas áreas donde el auto es inútil mientras la bicicleta siempre funciona
  • Es muy fácil moverse en bicicleta.
  • “Vim tiene autocompletado” Los autos tienen aire acondicionado, pero la bicicleta también lo tiene, solo necesitas remar más rápido.

bla bla

en resumen, ¡nunca puedes convencer a los amantes de VIM para que cambien su amor!

Esta es solo otra forma de preguntar ‘ ¿por qué la gente todavía usa el terminal mientras está Nautilus mientras hay arrastrar y soltar, clics con el botón derecho, menús y más …

Mis opiniones:

  • Las herramientas de línea de comando son increíblemente rápidas.
  • No es necesario que tome las manos dentro y fuera del mouse o del trackpad.
  • Vi, nano, emacs -nw se ve y se siente tan nativo, sin distracción.
  • Escriba en la terminal, compile en la terminal, ejecute en la terminal, mire en la terminal.
  • Vim o Emacs son fáciles de personalizar.

¿Y sabes qué? sublime / notepad ++ son en realidad 100 veces más lentos que las herramientas de terminal.
Multi cursores? Vim lo sabe
¿Emmet intergración? Vim también sabe eso

Auto finalización?
Sí, VIM los tiene aquí y aquí.

Prima
Inténtalo tú mismo. ‘abra un archivo grande con más de 15Megs (mp3s, videos) con subl y abra el mismo con vi o emacs o incluso nano. Lo sabrá.
PD. No soy responsable si esto bloquea a tus ‘editores más rápidos’.

Así que puedo ingresar SSH en un servidor básico en la nube de Google o AWS o en cualquier parte del mundo y comenzar a ser productivo. Solo un terminal VT100 simple y vi y estoy en el negocio, configurar el servidor web, instalar el compilador, escribir código, implementar la aplicación, recibir efectivo.
Estos servidores nunca tienen sistemas de ventanas, por lo que es vi o nada. Bienvenido al mundo hardcore de UNIX, las conexiones de Windows no tienen que aplicarse.

Vim es adictivo! Una vez que se haya acostumbrado a su interfaz de comandos, se encontrará usándolo para todas sus necesidades de edición de texto. También es muy flexible y personalizable.

Una gran lectura en vim se puede encontrar aquí:
Haciendo Vim Grande nuevamente – Blog Sourcerer

Comencé a usarlo en 1995, en una máquina Solaris a través de un módem de 56 kbps en una línea telefónica cuando era la única forma de editar, y ha funcionado en todo desde entonces, desde SSH a una computadora a 1000 millas de distancia, o en mi Linux computadoras de escritorio / portátiles, en mi SBC BeagleBoard, en mi tableta N810, en Android a través de SSH. Por qué parar ahora ?

Bueno, es difícil usar NP ++ / Sublime cuando no tiene una GUI o editar configuraciones en una red lenta.
Sin embargo, yo no código en vim. Solo lo uso para editar archivos de configuración (principalmente a través de ssh) y para eso nunca he tenido una queja al respecto. Como alguien más ya ha dicho, vim también está en la mayoría de las distribuciones de Linux, lo que es bueno.

Porque la gente pasó décadas pero no se le ocurrió una mejor.