¿Cuáles son los beneficios de aprender vim?

Como programador, pasé muchas horas en el teclado, y lo he estado haciendo durante los últimos 12 años, más o menos. Si durante todo este tiempo nunca he estado acostumbrado a esto, son microinterrupciones constantes molestas y casi inconscientes que experimento al codificar, debido a algunas de las tareas de edición de código más comunes. Cosas como copiar y pegar desde otra línea (o incluso una línea) o mover 1 o 2 líneas hacia arriba o hacia abajo desde la posición actual, requiere escribir mucho o usar las teclas de flecha ... y empeora cuando Quiero seguir adelante: termino usando el mouse. Ahora imagina el mismo escenario, pero en una laptop.

Siempre consideré aprender VIM, pero el tiempo que lleva dominarlo siempre me obligó a retirarme.

Me gustaría saber de las personas que lo han aprendido, y si esto resulta ser una de esas cosas sin las cuales no puedes vivir.

En el trabajo, uso VS2008, C # y R #, que juntos hacen que la edición del código sea mucho más rápida y fácil que nunca, pero incluso creo que no me gustó usar el mouse en absoluto.

E incluso las teclas de flecha.

471
28 февр. Trampa puesta el 28 de febrero 2009-02-28 02:27 '09 a las 2:27 am 2009-02-28 02:27
@ 34 respuestas
  • 1
  • 2

He estado usando vi y vim también durante unos 20 años, y todavía estoy aprendiendo cosas nuevas.

David Rainer Best of Vim Tips es una excelente lista, aunque probablemente sea más útil cuando esté familiarizado con vim.

También quiero mencionar el sitio web de ViEmu , que tiene gran información sobre las sugerencias de vi / vim y especialmente el artículo ¿Por qué, oh, POR QUÉ, estas nueces usan vi? ( versión archivada )

250
28 февр. respuesta dada por Greg Hewgill 28 de febrero 2009-02-28 02:31 '09 a las 2:31 am 2009-02-28 02:31

¿Puedo vivir sin él? Fácil

¿Esto es útil? Si

Razones para aprender

  • Se garantiza que vi existe en todos los sistemas Unix y existe en la mayoría de Linux. Una cobertura tan amplia hace que estudiar lo que vale.

  • Es mucho más rápido usar vi para editar sudo :

    $ sudo vi

  • Además, ¡GMail usa los comandos vi-ish para seleccionar y mover mensajes de correo electrónico!

No tienes que ser un maestro.

border=0

Solo estudiar

Conceptos básicos:

  • Cómo cambiar del modo de comando al modo de inserción i
  • Cómo pasar del modo de inserción al modo de comando Esc
  • Cómo navegar una cadena en modo de comando k
  • Cómo navegar una cadena en el modo de comando j
  • Cómo moverse a lo largo del borde izquierdo de un personaje en el modo de comando h
  • Cómo navegar por el personaje correcto l
  • Cómo guardar el archivo :w Entrar (escribir)
  • Cómo salir sin guardar (en modo comando) :q! Entrar
  • Como cancelarte
  • Cómo restaurar Ctrl + r
  • Puede combinar un registro y salir (en modo comando) :wq Enter

A partir de ahí, el resto te hará más rápido.

185
28 февр. La respuesta la da Trampas Kirk el 28 de febrero. 2009-02-28 02:49 '09 a las 2:49 am 2009-02-28 02:49

Ejecutar el vimtutor me tomó solo 30 minutos, lo cual fue suficiente para conocer vim. Valió la pena cada segundo.

138
28 февр. La respuesta se da Sych 28 feb. 2009-02-28 02:31 '09 a las 2:31 am 2009-02-28 02:31

Si usted es un programador que edita una gran cantidad de texto, es importante aprender un editor de texto serio. Lo que un editor de texto serio que aprendas no es muy importante y depende en gran medida del tipo de entorno que planeas editar.

La razón es que estos editores están muy optimizados para aquellas tareas que harás mucho. Por ejemplo, considere agregar el mismo bit de texto al final de cada línea. Esto es trivial en el editor de texto serio, pero en general es ridículamente engorroso.

Por lo general, las funciones de vim killer se consideran: A) que está disponible en casi todos los Unix que encontrará, y B) sus dedos rara vez tienen que abandonar la línea de inicio, lo que significa que puede editar el texto muy, muy rápidamente . Por lo general, también es muy rápido y fácil, incluso cuando se editan grandes archivos.

Sin embargo, hay muchas alternativas. Por supuesto, Emacs es el ejemplo más común, y es mucho más que un simple editor de texto avanzado si realmente entras en él. Personalmente estoy muy contento con TextMate ahora, después de varios años de usar vim / gvim.

El truco para cambiar a cualquiera de ellos es forzarte a usarlos como se pretendía. Por ejemplo, en vim, si realiza manualmente cada paso en un proceso de varios pasos o utiliza las teclas de flecha o el mouse, probablemente la mejor manera de hacerlo. Detén lo que estás haciendo y míralo.

Si no estás haciendo nada, aprende los controles de navegación básicos para vim y Emacs, ya que aparecen en todas partes. Por ejemplo, puede usar los controles de Emacs en cualquier campo de entrada de texto en Mac OS, la mayoría de los shells de Unix, Eclipse, etc. Los controles Vim se pueden utilizar en less (1), en Slashdot , en gmail , etc.

Buena suerte

69
28 февр. La respuesta la da Ryan Bright el 28 de febrero. 2009-02-28 03:05 '09 a las 3:05 am 2009-02-28 03:05

Definitivamente vale la pena el esfuerzo.

Hay una razón obvia por la que cualquiera que use Vi(m) le dirá, y otras dos que la gente nunca menciona.

Aquí está lo obvio:

  • vi inmediatamente ubicuo e increíblemente poderoso, y al estudiarlo una vez, tienes la oportunidad de usar este poder en casi cualquier computadora con un teclado.

Y estas son razones menos conocidas para aprender Vim :

  • No es tanto esfuerzo como piensas. Ejecute el vimtutor Vim una vez ( vimtutor en el shell o en Windows, vimtutor desde la carpeta Vim en el menú Inicio) y ya estará en el camino hacia la competencia, y todo estará abajo desde allí. Estaba a la altura del nivel en el que podía usar Vim en el trabajo, sin ningún rendimiento notable en menos de una semana.

  • ¡Esto es divertido! Editar el texto para mí ahora es como un juego. Lo disfruto activamente, es muy divertido cuando lo piensas.

También hay dos buenas razones para no aprender Vim :

  • Captura, y usted mismo querrá usar los comandos Vim en todas sus computadoras y maldecir cada vez que no pueda. Afortunadamente, al menos en algunas situaciones, para solucionar esto .

  • Nuevamente, esto se retrasa, y aunque no perderá ningún rendimiento por usar Vim en realidad, pasará horas buscando buenos consejos para hacer que su experiencia con Vim aún mejor, y después de leer la etiqueta Vim en el desbordamiento de pila.

36
06 мая '10 в 16:43 2010-05-06 16:43 La respuesta la da Rich el 6 de mayo de 2010 a las 16:43 2010-05-06 16:43

Definitivamente vale la pena explorar ya sea vim o emacs. También vale la pena explorar el tipo de toque. En ambos casos, las causas son las mismas: su pensamiento ya no se ve interrumpido por el proceso mecánico de obtener su código en la pantalla.

En cuanto a cómo empezar, simplemente sumérgete y comienza a usar vim para todo.

PS Los debates de emacs-vs-vi son infinitos. He estado usando emacs durante 26 años. Si volviera a comenzar hoy, estudiaría vim, porque (a) mejoró y (b) hay muchas menos teclas modificadoras (Ctl-Alt-V, alguien), y los usuarios de vim parecen obtener Mucho menos trauma impreso.

32
28 февр. Responder Norman Ramsey 28 feb. 2009-02-28 06:48 '09 a las 6:48 am 2009-02-28 06:48

Puede obtener una buena funcionalidad de vim examinando los valores de solo 16 teclas: ijkdbw9:q!%s/nN Esc . Solo puedes hacer huesos desnudos con i:wq Esc .

Las dos primeras teclas que necesita saber: Esc lo lleva al modo de comando (el modo en que se ejecuta), y i lleva al modo de inserción (entrada normal).


Para ahorrar necesitas

  • modo de entrada de salida ( Esc )
  • Introduzca un colon :
  • ingrese la cadena w , luego ingrese

Para guardar y cerrar, necesitas

  • modo de entrada de salida ( Esc )
  • Introduzca un colon :
  • Ingrese la cadena wq , luego Ingrese

Para no guardar o borrar, necesitas

  • modo de entrada de salida ( Esc )
  • Introduzca un colon :
  • entrar en minúscula q! luego entra

Para obtener más información, puede ejecutar la línea de comandos vimtutor . Esta es una lección de duración media, bien estructurada.

Además de i y Esc : puede replicar o superar ciertas funciones de MS Word solo con jkwbd3:%s/nN .

  • b devuelve la palabra ( Ctrl + )
  • w te envía la palabra ( Ctrl + )
  • 9w te lleva nueve palabras
  • db borra la palabra anterior ( Ctrl + Retroceso )
  • d3b borra las tres palabras anteriores
  • 9j mueve 9 lineas
  • / ornithopter Enter le devuelve a la siguiente instancia de la palabra "ornithopter", luego n y n a la siguiente y anterior aparición del ornithopter, respectivamente.
  • : %s/confounded/dangfangled/ Enter reemplaza cada "mezcla" con "dangfangled" (por ejemplo, find and replace all en MS Word)

Cualquiera de ellos debe iniciarse en modo "comando" ( Esc ), y no en modo insertado ( i ).

17
21 янв. La respuesta se da isomorfismos 21 de enero. 2012-01-21 03:39 '12 a las 3:39 2012-01-21 03:39

Recientemente cambié a VIM, y creo que vale la pena. Si necesita "simplemente hacer algo", siempre puede permanecer en el modo de inserción, donde vim es (en su mayoría) como un editor de texto normal.

Noté que las cosas que no estaban acostumbradas a molestarme, por ejemplo, para los tiradores, ahora se sienten mal y demasiado. Esto definitivamente ha reducido el movimiento de mi mano y el uso del mouse, lo cual es bueno tanto para la ergonomía como para el rendimiento.

16
28 февр. La respuesta la da Gabe Moothart el 28 de febrero. 2009-02-28 02:35 '09 a las 2:35 am 2009-02-28 02:35

Depende de lo que quieras hacer con VIM. No tiene sentido estudiarlo solo porque muchas personas no pueden vivir sin él.

Cuando trabajé mucho en entornos UNIX, no podría vivir sin él. Incluso cuando VIM no estaba instalado en una máquina UNIX, al menos podía usar vi. Siempre puede contar con él, incluso si la máquina no es suya (este es el cliente).

Ahora estoy programando en C # y principalmente trabajando en el entorno de Windows. Instalé VIM en mi computadora ... y no la necesito.

Evalúe si realmente necesita VIM y si lo respalda en su "flujo de trabajo". Probalo Juega con ello. Si crees que lo necesitas, apégate a él ... la curva de aprendizaje es muy pronunciada.

12
28 февр. La respuesta la da Theo Lenndorff el 28 de febrero. 2009-02-28 02:41 '09 a las 2:41 am 2009-02-28 02:41

Aprendí vi porque tenía que hacerlo.

Mi maestro loco nos hizo aprender a programar en C usando el terminal para el sistema AIX.

Fue un verdadero dolor, pero valió la pena.

Hoy solo uso vi para cambios rápidos o pequeños programas.

Cuando necesito ir a un proyecto, prefiero usar un IDE. En mi caso, la idea de IntelliJ es muy buena en la tarea, porque puedo codificar el reloj sin agarrar el mouse.

No sé cuántos accesos directos tiene VS2008, pero si se abren tan bien como Eclipse, creo que tiene problemas con vi.

Si NO está editando un código fuera del IDE, y hay buenos atajos en su IDE, analícelos mejor y luego vaya y estudie vi.

:)

10
28 февр. OscarRyz dio la respuesta el 28 de febrero. 2009-02-28 03:05 '09 a las 3:05 am 2009-02-28 03:05

He usado vi / vim por más de 25 años. Si ya conoce algún tipo de editor de línea de comandos, es posible que no necesite aprender vi / vim. Pero si no conoce muy bien a otros editores de línea de comando, vale la pena explorar. Es muy fácil ser productivo en vi / vim con poco esfuerzo.

9
28 февр. Craig S da la respuesta el 28 de febrero. 2009-02-28 02:33 '09 a las 2:33 am 2009-02-28 02:33

Yo uso VIM bastante ahora.

Utilicé Vim para editar y VS Editor para depurar. Probablemente parezca un poco loco, pero encontré el paradigma de Vi (macros, edición basada en la tecla de inicio, etc.), que llevó a una mejora de rendimiento que la edición en VS fue elocuente.

Gracias a Viemu, ya no necesito cambiarme . Esta no es una solución ideal (la finalización del código a veces no es tan elegante como en vim nativo, y la grabación de macros no es ideal), pero es mucho mejor que cambiar de un lado a otro.

La curva de aprendizaje para Vim es probablemente exagerada. Creo que tan pronto como entras en él, es bastante intuitivo.

6
05 марта '09 в 6:02 2009-03-05 06:02 La respuesta la da RedBlueThing el 5 de marzo de 2009 a las 6:02 2009-03-05 06:02

Mi trabajo me hizo recoger vim, y rápidamente se convirtió en algo natural. Ahora mis quejas son sobre IDE que no tienen emulación vim o plug-in. Me doy cuenta de que la tecla esc se ha convertido en mi enemigo fuera de vim.

En Visual Studio, encontré varios emuladores para vi:

http://code.google.com/p/vim-visual-studio/

5
12 янв. Respuesta dada por Courtland el 12 de enero. 2010-01-12 23:59 '10 a las 11:59 PM 2010-01-12 23:59

Reconocí a Wim. No fue demasiado. Ahora me encanta ci "ci (cw v: s / from / to / g

4
01 июня '09 в 8:02 2009-06-01 08:02 la respuesta la da thomasrutter el 1 de junio de 2009 a las 8:02 2009-06-01 08:02

Dos ventajas de vi / vim:

  • el es muy ligero

  • Está instalado en casi cualquier sistema * NIX

4
28 февр. La respuesta la da Colin el 28 de febrero. 2009-02-28 02:50 '09 a las 2:50 am 2009-02-28 02:50

Primero, un buen conocimiento de vi (m) le ahorrará el tiempo que necesita para editar con urgencia los archivos de configuración en un servidor que ejecuta Seige. Puede permanecer en una conexión ssh laggy.

El material administrativo en el lado del método de entrada vim será su mejor protección contra el túnel carpiano si lo utiliza con eficacia con un teclado ergonómico.

La mejor manera de ver un punto de vista vertical es comenzar un proyecto al azar en casa, apagar el mouse y la cinta sobre las teclas de flecha.

Y lee la ayuda

4
28 февр. Respuesta dada por michael el 28 de febrero 2009-02-28 02:48 '09 a las 2:48 am 2009-02-28 02:48

Apoyo un proyecto Linux muy grande en una computadora remota. No hay opción para usar Eclipse o un IDE basado en GTK similar. Llevo 3 años trabajando allí. E instalé mi vim solo para este proyecto. Y sin embargo personalizar.

Ahora puedo hacer algo desde Vim: control de código fuente, sql, depuración, compilación, navegación: realmente un vistazo rápido al código fuente de 1 Gb.

Visual Studio o Eclipse no pudieron manejar todo esto. Y si tuviera la opción, cambiaría Vim a otro editor o IDE.

4
28 февр. La respuesta es dada por Mykola Golubyev el 28 de febrero. 2009-02-28 14:43 '09 a las 14:43 2009-02-28 14:43

Yo diría que definitivamente vale la pena estudiar vim. Lo tomé el verano pasado, y ahora este es mi editor preferido para casi todo (java es un banner, pero es factible cuando no necesito un amplio soporte de análisis). Como todos ya han confirmado, esta es una herramienta maravillosamente efectiva.

Por lo que cuesta, aprendí un subconjunto bastante pequeño de las funciones vim (que tomó un día o dos) de un tutorial gráfico y varias opciones y resultados aquí (lectura larga), así como una función de búsqueda y reemplazo, y me conecté. Desde entonces, he aprendido algo, pero en mi tiempo libre. Yo diría que en esta etapa la curva de aprendizaje es tímida, pero luego la usé con bastante fuerza y ​​estaba rodeada de otros que también lo estaban.

3
28 февр. La respuesta la da Ellery Newcomer el 28 de febrero. 2009-02-28 03:24 '09 a las 3:24 2009-02-28 03:24

Estoy en la misma situación que usted, y como recién llegado a Vim, al principio me pareció un poco difícil: la curva de aprendizaje parece ser pronunciada. Por lo que aprendí en unas pocas horas, ya siento que no puedo vivir sin él.

Aquí hay algunos enlaces que he encontrado para ver screencasts Vim útiles para mostrarle lo que puede hacer.

El buen consejo que dio Bram Moolenaar (el dictador benévolo de Vim) en este último enlace es que sería ineficiente tratar de aprender cada comando y función, solo averigüe qué es lo que no funciona muy bien, busque la manera de hacerlo Es más efectivo y luego lo convierten en un hábito.

3
28 февр. La respuesta se da Andy 28 de febrero. 2009-02-28 19:18 '09 a las 19:18 2009-02-28 19:18

Sí, definitivamente tómese el tiempo para aprender al menos un poco de "vi" y "vim". El viaja muy bien.

Nunca se queda atascado cuando se encuentra con un cliente Unix / Linux / Mac para el que no tiene opciones de instalación. Incluso en Windows (si tiene opciones de instalación), "Vim" es gratis y fácil de instalar. (A diferencia de invertir su curva de aprendizaje exclusivamente en algo como UltraEdit, que, aunque es un excelente editor, puede que no esté disponible para usted todo el tiempo ...).

Learning vi puede ayudarlo a explorar otras herramientas, como "sed" y la expresión regular: material que generalmente se transmite.

Además, si quieres ser un geek adecuado, solo necesitas saber "vi / m", o te verás como un farsante; -)

3
23 нояб. La respuesta se da monojohnny 23 de noviembre. 2009-11-23 20:28 '09 a las 20:28 2009-11-23 20:28

Creo que definitivamente vale la pena el tiempo y el esfuerzo para aprender vim. Para mí, esto hace que la escritura y la navegación alrededor del texto sean tan efectivas que es difícil imaginar cómo volver a Emacs o los atajos de teclado Ctrl + shift / Alt / Meta.

No se deje intimidar por todas las características de vim de lujo. Tan pronto como lo uses lo suficiente, entenderás qué comandos utilizas más y entenderás qué cosas puedes olvidar.

2
28 февр. La respuesta la da Andy White el 28 de febrero. 2009-02-28 02:58 '09 a las 2:58 am 2009-02-28 02:58

Definitivamente vale la pena aprender a resumir parcialmente lo que se dijo anteriormente aquí: las razones principales:

  • Vi / Vim se puede encontrar en la mayoría de los sistemas UNIX.
  • Vim facilita la codificación sin quitar las manos del teclado.
  • Si planea configurar algo en un sistema basado en UNIX, editará algunos archivos de configuración pequeños, por lo que querrá estudiar el editor basado en terminal, desde el cual vim es uno de los mejores (lo siento emacs).
  • Vim compila / ha precompilado binarios para casi todos los sistemas operativos. No hay necesidad de publicar "Necesito un compañero de texto alternativo para [insertar sistema operativo]", en su lugar tendrá Vim!
  • Hay muchos complementos buenos para agregar una gran cantidad de funciones, por ejemplo, en el editor cvs diff, aunque algunos de ellos requieren una cantidad significativa de masterización.

También en el lado de la nota, si cree que necesita enlaces de teclas Vim, también existen IDE que incluyen enlaces vim en sus editores para comandos simples, por ejemplo, Editar Komodo .

Para obtener ayuda con el entrenamiento de Vim, intente escribir "vimtutor" en su terminal y siga las instrucciones. También hay un libro que es especialmente bueno, Breaking Vim.

2
06 мая '09 в 1:23 2009-05-06 01:23 La respuesta la da Jamie el 6 de mayo de 2009 a la 1:23 2009-05-06 01:23

Aprendí a amar vi, observando a alguien que tenía mucha experiencia con eso, y me moví para hacer cambios en el clip increíblemente rápido. Realmente puedes copiarlo rápidamente. Otra razón por la que me gusta es que a veces encuentro que el mouse alrededor del IDE realmente me duele después de un tiempo, y vi da un cambio agradable. Como han señalado otros, también casi siempre está disponible en los sistemas Unix y funciona bien incluso en conexiones pésimas.