¿Cuáles son los beneficios de aprender Vim? [cerrado]

467

Como programador, paso muchas horas en el teclado y lo he estado haciendo durante los últimos 12 años, más o menos. Si hay algo a lo que nunca me he acostumbrado durante todo este tiempo, son estas microinterrupciones constantes molestas y casi inconscientes que experimento durante la codificación, debido a algunas de las tareas de edición de código más comunes. Cosas como copiar y pegar desde una línea diferente (o incluso la misma línea), o mover 1 o 2 líneas hacia arriba o hacia abajo desde la posición actual requieren escribir demasiado o involucrar el uso de las teclas de flecha ... y se obtiene peor cuando quiero ir más lejos: termino usando el mouse. Ahora imagine este mismo escenario pero en una computadora portátil.

Siempre he considerado aprender VIM, pero la cantidad de tiempo necesaria para dominarlo siempre me ha hecho querer dar un paso atrás.

Me gustaría saber de personas que lo han aprendido y si termina siendo una de esas cosas sin las que no puedes vivir.

En el trabajo, uso VS2008, C # y R #, que juntos hacen que editar código sea mucho más rápido y fácil que nunca, pero aun así creo que podría disfrutar de no tener que usar el mouse.

Y ni siquiera las teclas de flecha.

Trampa
fuente
77
No tener que cambiar entre el teclado y el mouse es definitivamente bueno. En Mac, utilicé las teclas de navegación de emacs (ctrl-A, por ejemplo) incluso en un editor de GUI como BBEdit o Xcode, solo para evitar el movimiento adicional con el mouse.
Craig S
236
Vale totalmente la pena el esfuerzo. Learn vim;)
Kyle Walsh
20
Puedes aprender vim básico (olvídate de vi) en un par de minutos, solo escribe vimtutor en la terminal y estarás configurado con lo básico: todo lo que aprendas en los próximos 20 años depende de ti. Tengo curiosidad por saber cómo el VS2008, C # & R # lo ayuda con los problemas relacionados con tener que desperdiciar su vida moviéndose entre el teclado y las teclas de flecha / mouse.
stefanB 01 de
43
Una de las mejores inversiones que he hecho.
Johnsyweb
10
Creé este juego para ayudar a mi sobrino de siete años a aprender a moverse rápidamente en Vim: la versión beta de kikuchiyo.org te permite atacar a los enemigos con sable de luz, 'i' para el ataque izquierdo y 'a', para el derecho: PI aprendió a Vim por las mismas razones que tú. Encontré que moverme era la parte más difícil para acostumbrarme. Espero que el juego te ayude a acelerar, si necesitas ayuda :) ¡Buena suerte! :)
kikuchiyo

Respuestas:

249

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

El sitio Best of Vim Tips de David Rayner es una lista excelente, aunque probablemente sea más útil una vez que esté familiarizado con vim.

También quiero mencionar el sitio ViEmu que tiene una gran información sobre consejos vi / vim y especialmente el artículo ¿Por qué, oh POR QUÉ, esos tontos usan vi? ( versión archivada )

Andrew Hendrie
fuente
8
Sí, siempre estoy aprendiendo cosas nuevas también. Todavía es mi editor favorito también.
Craig S
20
Me pregunto si eso es bueno o malo. Si constantemente aprende cosas nuevas, la curva de aprendizaje es REALMENTE empinada, las características están REALMENTE ocultas y no hay sensación de dominio. De todos modos, si querías RISC, fuiste con vi en lugar de vim, ¿verdad?
bastibe
77
@Paperflyer: tuve los mismos pensamientos. Si aún no lo has dominado después de 20 años, es un dolor de cabeza que no estoy seguro de querer
Dinah
77
¿Cómo es eso? Significa que, si bien tiene tantas funciones, puede seguir aprendiendo, pero no tiene que aprenderlas todas para ser más productivo.
Arda Xi
55
"¿Por qué, oh POR QUÉ, esos tontos usan vi?" - Buen enlace, especialmente para la pregunta
184

¿Podría vivir sin eso? Fácilmente.

¿Es útil? Si.

Razones para aprender

  • Se garantiza que vi existe en todos los sistemas Unix y también existe en la mayoría de los sistemas Linux. Ese tipo de cobertura amplia hace que valga la pena aprender.

  • Es mucho más rápido usar vi para una sudoedición:

    $ sudo vi

  • ¡Además, GMail usa comandos vi-ish para seleccionar y mover correos electrónicos!

No tienes que ser un maestro.

Solo aprende

Los basicos:

  • Cómo cambiar del modo comando al modo insertar i
  • Cómo cambiar del modo de inserción al modo de comando Esc
  • Cómo navegar por una línea en modo comando k
  • Cómo navegar por una línea en modo comando j
  • Cómo navegar dejó un personaje en modo comando h
  • Cómo navegar a la derecha de un personaje l
  • Cómo guardar un archivo :wEnter(escribir)
  • Cómo salir sin guardar (en modo comando) :q!Enter
  • Cómo deshacer u
  • Cómo rehacer Ctrl+r
  • Puede combinar escribir y salir (en modo comando): :wqEnter

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

Trampas Kirk
fuente
Siempre he usado "vi es fácil; usas la tecla ell para mover el cursor hacia la derecha" como una forma chistosa (espero) de introducirlo. Pero lo he estado usando durante mucho tiempo y no estaría sin él. Sin embargo, no puedo reclamar más de 25 años para otra pareja, así que no hay una nueva respuesta de mi parte.
Jonathan Leffler
16
Así es como lo aprendí. Comience con el mínimo y aumente un poco cada día. Tómese el tiempo para aprender una forma ligeramente mejor de lograr una tarea. Consulte los "7 hábitos de edición de texto altamente" para obtener inspiración.
Ben
Gmail, los métodos abreviados de teclado de búsqueda experimental de Google, los métodos abreviados de teclado Slashdot, man y menos, todos usan enlaces tipo vim. ¡Me sorprendió descubrir que accidentalmente había aprendido esto sin saberlo! Incluso Firefox usa / para búsqueda incremental (con semántica muy ligeramente diferente de Ctrl + F).
Adam Rosenfield
29
[:] [X] [Enter] es lo mismo que [:] [W] [Q] [Enter]
Vitalii Fedorenko
20
[Z] [Z] es lo mismo que [:] [X] [Enter]
Kos
138

La ejecución de vimtutor solo me llevó 30 minutos, lo que fue suficiente para familiarizarme con vim. Valió la pena cada segundo.

Blorgbeard
fuente
Si conoce un mejor enlace explicativo, cambie el mío :)
Blorgbeard sale el
43
vimtutor es exactamente eso, un tutorial. Lo hice todos los días durante unos 10 días. La primera vez me llevó unos 30 minutos, al día siguiente 20, luego 15. Al final de la semana, tenía la mayor parte de su comando impreso en mi mente. Creo que, en lugar de tratar de memorizar, la repetición es la mejor manera de acercarse a Vim. 15 min todos los días durante una semana parece un precio realmente pequeño.
Michael Ekoka
28
¿Qué pasa una vez que hayamos terminado con VIMTUTOR? ¿Cuál es el siguiente paso para aprender más?
privatehuff
3
@privatehuff: lee y aplica Siete hábitos de edición de texto efectiva .
Frank Kusters
1
¡Guauu! esto era como uno de esos elementos ocultos en un juego. Estaba justo ahí en mi sistema y no sabía que existía. Uno de los tutoriales más útiles y rápidos de vim. Usando vim por un tiempo, todavía aprendí un par de trucos básicos que no conocía. recomendado a todos. También una pequeña sugerencia: si está usando vim en una computadora portátil que tiene un panel táctil y admite gestos, desactívela antes de usar vim porque si se toca accidentalmente, puede mover el cursor a lugares inesperados que a veces desperdician una buena edición completa.
Barracuda
69

Si eres un programador que edita una gran cantidad de texto, entonces es importante aprender un editor de texto serio. El editor de texto serio que aprende no es muy importante y depende en gran medida de los tipos de entornos en los que espera editar.

La razón es que estos editores están altamente optimizados para realizar los tipos de tareas que harás mucho. Por ejemplo, considere agregar el mismo fragmento de texto al final de cada línea. Esto es trivial en A Serious Text Editor, pero de lo contrario es ridículamente engorroso.

Por lo general, se consideran las características asesinas de vim: A) que está disponible en casi todos los Unix que encontrarás y B) tus dedos rara vez tienen que abandonar la fila de inicio, lo que significa que podrás editar el texto muy, muy rápidamente . También suele ser muy rápido y ligero, incluso cuando se editan archivos de gran tamaño.

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

El truco para cambiar a cualquiera de estos es obligarse a usarlos de la manera en que fueron diseñados. Por ejemplo, en vim, si realiza manualmente cada paso en un proceso de varios pasos o si usa las teclas de flecha o el mouse, entonces probablemente haya una mejor manera de hacerlo. Detén lo que estás haciendo y búscalo.

Si no hace nada más, aprenda los controles básicos de navegación para vim y Emacs, ya que aparecen por todas partes. Por ejemplo, puede usar controles de estilo Emacs en cualquier campo de entrada de texto en Mac OS, en la mayoría de los shells de Unix, en Eclipse, etc. Puede usar controles de estilo vim en el comando less (1), en Slashdot , en gmail , etc.

¡Que te diviertas!

Ryan Bright
fuente
77
Esto tiene un punto que muchas personas pasan por alto. Casi cualquier tarea repetitiva tiene un atajo. Los desarrolladores aman los atajos. Como dijo rbright, si se encuentra realizando un paso repetidamente, deténgase y vea si alguien ya ha documentado un atajo.
AvatarKava
A) fue una de las principales razones para usar VIM: originalmente era un chico de emacs, pero no todos los sistemas lo tenían y a veces era lento en la red o en servidores ocupados. VIM es omnipresente, pequeño y rápido.
jpeacock 03 de
3
Mi editor constantemente hace bromas malas. Debería cambiar.
Greg Graham
Usted me dijo: "Si eres un programador que edita una gran cantidad de texto, entonces es importante aprender un editor de texto serio". La peor parte es que parece imposible aprender dos (mucho menos) por dentro y por fuera, casi por definición. Está estudiando casos límite en algún momento, y el conocimiento de cómo realizar la Tarea X en uno generalmente no se traduce. Y siempre hay cosas que hago en editores "marginales": sigo usando JEdit para JTidy, Code2HTML, para buscar múltiples archivos, por ejemplo. Lo principal es tirar los dados, y no hay una bala de plata, pero sí, aprende absolutamente uno y juega con muchos. ; ^)
ruffin
1
@ruffin Es cierto, realmente no puedes dominar dos editores diferentes al mismo tiempo: si dominas un editor, estarás usando muchos de sus comandos inconscientemente , y eso significa que es muy probable que intentes usar el mismo comando cuando está utilizando el otro editor. ¿Cuántas veces he maldecido mi navegador por no permitirme arreglar las hendiduras con un simple <esc> >i{... Es realmente lo mismo que con la escritura táctil: aprendes un diseño de teclado y te apegas a él porque nunca podrás parar sus dedos de escribir las teclas incorrectas en un diseño diferente.
cmaster - reinstalar a monica el
36

Es sin duda vale la pena el esfuerzo.

Hay una razón obvia por la que cualquiera que usa Vi(m) te lo dirá, y otras dos que la gente nunca parece mencionar.

Aquí está el obvio:

  1. vi es a la vez omnipresente e increíblemente poderoso, y al aprenderlo una vez, obtienes la capacidad de ejercer esa potencia en casi cualquier computadora que tenga un teclado.

Y estas son las razones menos conocidas para aprender Vim:

  1. No es la mitad del esfuerzo que crees que va a ser. Ejecute el tutorial de Vim una vez ( vimtutoren un shell, o en Windows, ejecútelo desde la carpeta Vim en el menú Inicio), y ya estará en camino a la competencia, y todo es cuesta abajo desde allí. Estaba a un nivel en el que podía usar Vimen el trabajo sin recibir ningún golpe de productividad notable en menos de una semana de almuerzo.

  2. Es divertido ! Editar texto es como un juego para mí ahora. Lo disfruto activamente, lo cual es bastante ridículo, cuando lo piensas.

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

  1. Es adictivo, y te encontrarás deseando poder usar Vimcomandos en toda tu informática, y maldiciendo cuando no puedas. Afortunadamente, al menos para algunas situaciones, hay formas de evitar esto .

  2. Nuevamente, es adictivo, y aunque no perderá productividad al usarlo realmente Vim, perderá horas buscando buenos consejos para mejorar Vimaún más su experiencia, y leyendo la etiqueta Vim en Stack Overflow.

rico
fuente
12
Jaja número 2 por razones "no" para aprender VIM es tan correcto. Todo ese tiempo guardo la edición de texto, paso leyendo sobre la edición de texto. Ridículo.
Karl Floersch
Sí, me hubiera gustado que podría jugar valle stardew usando hjkl ...
x es
32

Definitivamente vale la pena aprender vim o emacs. También vale la pena aprender a tipear. En ambos casos, las razones son las mismas: su pensamiento ya no se ve interrumpido por el proceso mecánico de llevar su código a la pantalla .

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

PD: El debate emacs-vs-vi es interminable. He estado usando emacs por 26 años. Si comenzara de nuevo hoy, aprendería vim porque (a) ha mejorado y (b) hay muchas menos teclas modificadoras (Ctl-Alt-V, cualquiera) y los usuarios de vim parecen tener mucho menos daño de tipeo.

Norman Ramsey
fuente
RSI es el único riesgo laboral de los desarrolladores. Nunca lo pensé de esa manera, pero apuesto a que este es un muy buen punto. Es mucho más difícil escribir acordes desde el punto de vista muscular. ¡Sabía que había una razón asesina para usar vi!
DigitalRoss
1
Utilicé ambos, fui "bautizado" con vim y aprendí emacs hace unos meses. Prefiero vim porque las tareas están divididas: estás editando o insertando, no haciendo ambas cosas. Esta distinción me ayuda a pensar en lo que estoy haciendo, y hace que los comandos "normales" presionen 1-2 teclas, en lugar de 2-4. Solo desearía que vim estuviera basado en Lisp (y no, el modo viper no admite todas mis características estándar de vim. Sí, podría rodar el mío, pero las extrañaría cada vez que tocara una nueva computadora / sistema)
Wayne Werner
1
@WayneWerner Estoy realmente desactualizado, pero puedes controlar la versión de todo tu elisp para poder sincronizarlos a través de las computadoras.
YuriAlbuquerque
@YuriAlbuquerque, en realidad he comenzado a pensar muy en serio sobre la creación de un script de configuración de entorno automático, manteniendo todos mis archivos de puntos en github o algo así.
Wayne Werner
17

Se puede obtener un buen vistazo a la funcionalidad de vim por el aprendizaje de los significados de sólo 16 teclas: ijkdbw9:q!%s/nNEsc. Puedes hacer los huesos desnudos con soloi:wqEsc .

Las dos primeras teclas que necesita saber son: lo Esclleva al modo de comando (el modo en que comienza) y lo illeva al modo de inserción (escritura normal).


Para ahorrar necesitas

  1. salir del modo de escritura (Esc )
  2. escribe un colon :
  3. escriba minúscula wentoncesEnter

Para guardar y dejar de fumar necesita

  1. salir del modo de escritura (Esc )
  2. escribe un colon :
  3. escriba minúscula wqentoncesEnter

Para no guardar y forzar la salida, debe

  1. salir del modo de escritura (Esc )
  2. escribe un colon :
  3. escriba minúscula q!entoncesEnter

Para aprender más puedes correr vimtutor en la línea de comando. Es una lección mediana, bien estructurada.

Más allá iy Esc: solo puede replicar o superar algunas funciones de MS Word jkwbd3:%s/nN.

  1. bte lleva de vuelta una palabra ( Ctrl+ )
  2. wte lleva adelante una palabra ( Ctrl+ )
  3. 9w te lleva adelante nueve palabras
  4. dbelimina la palabra anterior ( Ctrl+ Backspace)
  5. d3b elimina tres palabras anteriores
  6. 9j baja 9 líneas
  7. / ornithopter Enterlo lleva a la siguiente instancia de la palabra "ornithopter", luego ny Na la aparición siguiente y anterior de "ornithopter" respectivamente.
  8. :%s/confounded/dangfangled/ Entersustituye cada "confundido" con "colgado" (como find and replace allen MS Word)

Cualquiera de estos debe ejecutarse en modo "comando" ( Esc), no en modo insertar ( i).

isomorphismes
fuente
16

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

Me he dado cuenta de que las cosas que no solían molestarme, como alcanzar las teclas de flecha, ahora se sienten mal y demasiado esfuerzo. Definitivamente disminuyó el movimiento de mi mano y el uso del mouse, lo que es bueno tanto para la ergonomía como para la productividad.

Gabe Moothart
fuente
12

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

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

Ahora programo en C # y trabajo principalmente en entornos Windows. He instalado VIM en mi PC ... y no lo necesito.

Evalúe si realmente necesita VIM y si lo apoya en su "flujo de trabajo". Pruébalo. Juega con ello. Si cree que lo necesita, manténgalo ... la curva de aprendizaje es muy empinada.

Theo Lenndorff
fuente
Hay una extensión de estudio visual para usuarios de VIM. Véala
yoel halb el
10

Aprendí vi porque tenía que hacerlo.

Mi profesor loco nos obligó a aprender a programar en C usando una terminal a un sistema AIX.

Fue un verdadero dolor, pero valió la pena.

Hoy, solo uso vi para ediciones rápidas o pequeños programas.

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

No sé cuántos accesos directos tiene VS2008, pero si son tan reconocibles como Eclipse, creo que estás en problemas, ve por vi.

Si NO edita el código fuera del IDE y su IDE tiene buenos accesos directos, es mejor que los aprenda y luego vaya y aprenda vi de todos modos.

:)

OscarRyz
fuente
Pidió los beneficios de VIM, no una opinión.
Blaze349
@ Blaze349 no, pidió escuchar sobre la gente cómo lo aprendió (ver la publicación original aquí), que es exactamente lo que respondí. Esta pregunta tiene casi 8 años y ha pasado por varias revisiones durante los años, mi respuesta coincidió con la original. Tenga esto en cuenta al comentar.
OscarRyz
9

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

Craig S
fuente
6

Yo uso VIM casi exclusivamente ahora.

Solía ​​usar Vim para editar y VS Editor para depurar. Esto probablemente parece un poco loco, pero encontré el paradigma Vi (macros, edición basada en la tecla de inicio, etc.) como un impulso a mi productividad, que la edición en VS fue pésima.

Gracias a Viemu , ya ni siquiera tengo que hacer el cambio. Todavía no es la solución perfecta (la finalización del código a veces no es tan elegante como en vim nativo y la grabación macro no es perfecta), pero es mucho mejor que cambiar constantemente de un lado a otro.

La curva de aprendizaje para Vim probablemente es exagerada. Creo que una vez que entras, es bastante intuitivo.

RedBlueThing
fuente
5

Mi trabajo me obligó a recoger vim y se ha convertido rápidamente en una segunda naturaleza. Ahora mis quejas son sobre IDE que no tienen emulación vim o complementos. Me doy cuenta de que la clave esc se ha convertido en mi enemigo fuera de vim.

Encontré varios emuladores para vi dentro de Visual Studio:

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

Courtland
fuente
4

En primer lugar, un buen conocimiento de vi (m) le ahorrará el tiempo que tiene que apresurarse para hacer una edición de emergencia de los archivos de configuración en un servidor bajo control. Puede aguantar una conexión ssh lenta.

Dejando a un lado las cosas de administrador, el método de entrada de vim será su mejor defensa contra el túnel carpiano si lo usa eficazmente con un teclado ergonómico.

La mejor manera de ver el punto de vim es comenzar un proyecto informal en casa, desconecte el mouse y la cinta sobre las teclas de flecha.

Y lee la ayuda

Miguel
fuente
44
También encuentro que el modelo de entrada Vi es excelente para defenderse del síndrome del túnel carpiano ...
CMS
¿teclas de flecha? intente en su .vimrc: map <up> <nop> map <down> <nop> map <left> <nop> map <right> <nop> imap <up> <nop> imap <down> <nop> imap < izquierda> <nop> imap <right> <nop>
sjas
1
Solo señalaría que hay una nanoque es mucho más fácil de usar que vim, y está casi igualmente extendida.
MightyPork
4

Dos ventajas de vi / vim:

  • Es muy liviano

  • se instala en casi todos los sistemas * NIX

Colin
fuente
8
¿Por qué pusiste * en lugar de U?
Kamran Bigdely
44
@kami: un poco tarde, pero aquí tienes: en.wikipedia.org/wiki/Unix-like
orlp
¿Vim es realmente "muy ligero" en comparación con la mayoría de los otros editores de texto?
Ben
4

Estoy manteniendo un gran proyecto de Linux en la computadora remota. No hay elección para usar Eclipse o un IDE similar basado en GTK. He estado trabajando allí por 3 años. Y configuré mi vim solo para este proyecto. Y aún retocando.

Ahora puedo hacer cualquier cosa desde Vim: control de fuente, sql, depuración, compilación, navegación, navegación muy rápida sobre el código fuente de 1 Gb.

Visual Studio o Eclipse no pudieron manejar todo esto. Y si tuviera que elegir, no cambiaría Vim a otro editor o IDE.

Mykola Golubyev
fuente
4

Aprendí a Vim. No fue demasiado esfuerzo. Ahora me encanta ci "ci (cw V: s / from / to / g

thomasrutter
fuente
3

Yo diría que definitivamente vale la pena aprender vim. Lo recogí el verano pasado, y ahora es mi editor de elección para casi todo (Java es una exageración, pero factible cuando no necesito un amplio soporte de análisis). Como todos ya han afirmado, es una herramienta maravillosamente eficiente.

Por lo que vale, solo aprendí un subconjunto bastante pequeño de las características de vim (que tomó un día o dos) de un tutorial gráfico , y algunas probabilidades y termina a partir de aquí (lectura larga), y la funcionalidad de búsqueda y reemplazo, y yo Estaba enganchado. He aprendido cosas desde entonces, pero en mi tiempo libre. Diría que la curva de aprendizaje se aplana en este punto, pero luego, la estaba usando bastante y estaba rodeada de otras personas que también lo estaban.

Ellery Newcomer
fuente
3

Estoy en la misma situación que tú, y como principiante en Vim, originalmente lo encontré un poco desalentador: la curva de aprendizaje parece empinada. Por lo que aprendí en unas pocas horas, ya siento que no podré vivir sin él.

Aquí son unos pocos enlaces que he encontrado para screencasts útiles Vim para mostrar lo que es capaz de hacer.

Un buen consejo que dio Bram Moolenaar (dictador benevolente de Vim) en ese último enlace es que sería ineficiente tratar de aprender cada comando y función, solo averigua qué es lo que estás haciendo que no es trabajando muy bien, busca una manera de hacerlo más eficiente y luego hazlo un hábito.

Andy
fuente
3

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

Nunca se quedará atascado cuando se enfrente a un sistema Unix / Linux / Mac para el que no tiene capacidades de instalación. Incluso en Windows (si tiene capacidades de instalación) 'Vim' es gratuito y fácil de instalar. (A diferencia de invertir su curva de aprendizaje puramente en algo como UltraEdit, que aunque un excelente editor podría no estar disponible para usted todo el tiempo ...).

Learning vi puede configurarlo para aprender otras herramientas como 'sed' y regex en general: cosas que generalmente son transferibles.

Además, si quieres ser un geek adecuado, solo necesitas saber 'vi / m' o parecerás un falso ;-)

monojohnny
fuente
2

Creo que definitivamente vale la pena el tiempo y el esfuerzo para aprender vim. Para mí, hace que escribir y navegar por el texto sea tan eficiente que es difícil imaginar volver a emacs o combinaciones de teclas ctrl / shift / alt / meta.

No te dejes intimidar por todas las características elegantes de vim. Una vez que lo haya usado lo suficiente, descubrirá qué comandos usa más y descubrirá qué cosas puede olvidar.

Andy White
fuente
2

La increíble ubicuidad de Vim, y la ubicuidad aún más sorprendente de Vi-clones en general, solo en sistemas Unix es suficiente para que valga la pena aprenderlo.

Además de eso, todo el pensamiento al estilo Vi es algo que realmente creo que me ha hecho un poco más productivo. Para una persona que no está acostumbrada a modos como el modo de comando y el modo de inserción, parece un poco excesivo tener que ingresar un modo solo para insertar texto. Pero, cuando uno ha estado usando Vim durante unos meses, y ha aprendido bastantes consejos y trucos, Vim parece ser un activo que parece valer la pena.

Por supuesto, la multitud de Emacs dice lo mismo con respecto al pensamiento de estilo Emacs, pero dejé de aprender Emacs porque Vim era más simple e hizo el trabajo por mí.

James Mishra
fuente
2

Aprendí a que me gustara vi después de ver a alguien que era muy hábil con él navegar para hacer ediciones en un clip increíblemente rápido. Realmente puedes codificar rápidamente con él. Otra razón por la que me gusta es que a veces encuentro que pasar el rato en un IDE realmente me duele las manos después de un tiempo y vi proporciona un cambio agradable. Como otros han mencionado, casi siempre está disponible en sistemas Unix y funciona bien incluso en conexiones pésimas.

Una cosa que no he visto mencionada es que saber vi tiene el beneficio adicional de "geek cred" en algunos círculos. Puedo pensar en al menos algunas personas que se ríen cuando ven que un nuevo programador enciende nedit para hacer algunos cambios en un archivo.

Dana Robinson
fuente
2

No se asuste por la cantidad de comandos, no he conocido a nadie que haya usado más de un par de docenas como máximo. Lo encuentro indispensable, porque cuando pienso en el código, estoy pensando en el texto, pasar a pensar en los ratones simplemente me confunde. Creo que los grandes trucos son aprenderlo un poco a la vez y no dudar en jugar: las funciones de deshacer son excelentes para explorar sus comportamientos.

Además, si te sumerges profundamente, vim es programable. Las posibilidades son literalmente infinitas.

(Sí, todo esto también se aplica a emacs ...)

Kim Reece
fuente
2

Estaba contento con mi teclado y eclipsé el mundo hasta que tuve que comenzar a trabajar con servidores que se ejecutan en Linux. Se necesitaban secuencias de comandos remotas y la configuración de archivos de configuración.

Al principio fue difícil, pero ahora puedo configurar y ajustar mis servidores fácilmente.

Cesar
fuente
2

Es posible que desee aprender vim porque es posible que no esté satisfecho con los editores que ya está utilizando.

Es posible que desee aprender vim porque muchas personas dicen que es genial. Solo mira cuántas respuestas tienes a esta pregunta.

Proporcionaré una razón adicional para aprender vim. Tiene una reputación por la calidad y la integridad de sus documentos. Por lo tanto, encontrará la mayoría de las respuestas a sus preguntas en su sistema de ayuda tan pronto como logre pegar las palabras clave adecuadas en sus consultas de ayuda.

Anónimo
fuente
2

Para aprender vi (m) rápido, primero hay que entender todo el diseño. Vim tiene un gran conjunto de comandos de movimiento del cursor, verifique algunos (X es un carácter, # un dígito):

jk ingrese las flechas 0 $ w W b B ctrolD crtolU ctrolE ctrolY HML fX FX tX TX,; % gg G n N mX 'X' '

y muchos más sería aburrido enumerarlos. Muchos de estos admiten un conteo antes del comando, como 4j para mover 4 líneas hacia arriba.

Ahora, volviendo al diseño, escribe un comando como d para eliminar seguido de un movimiento del cursor y el comando se aplica al fragmento de texto desde la posición del cursor hasta el final del movimiento. Por ejemplo, H se mueve a la parte superior de la pantalla, dH se elimina a la parte superior de la pantalla y cH cambia (reemplaza) a la parte superior de la pantalla.

Este diseño es bastante poderoso. También reduce u organiza lo que necesita aprender. Definitivamente, el primer paso es aprender algunos comandos de movimiento del cursor. Digamos 8 o 10 al principio. Entonces ya casi has terminado.

Juan Lanus
fuente
2

Aprender algo nuevo siempre vale la pena, en mi humilde opinión. Le sugiero que imprima una hoja de trucos y se obligue a usarla día tras día.

modo interruptor
fuente
Hay una historia en chino que dice que alguien aprende de un maestro cómo matar dragones. Una vez que se graduó de estudiar, nunca puede encontrar dragones reales para matar. No estoy diciendo vi, pero es la moraleja de esta historia que a veces aprender algo es solo una pérdida de tiempo.
Earth Engine
2

Definitivamente vale la pena aprender a Vim a resumir en parte lo que se ha dicho anteriormente, aquí están las razones principales:

  • Vi / Vim se puede encontrar en la mayoría de los sistemas Unix.
  • Vim le permite codificar fácilmente sin quitar las manos del teclado.
  • Si planea configurar algo en un sistema basado en Unix, es probable que esté editando unos pocos archivos de configuración, por lo tanto, querrá aprender un editor basado en terminal, de los cuales vim es uno de los mejores (lo siento, emacs).
  • Vim compila / ha precompilado binarios para casi todos los sistemas operativos que existen. No es necesario publicar "Necesito una alternativa textmate para [insertar OS]", ¡tendrás Vim en su lugar!
  • Existen muchos complementos buenos para agregar una gran cantidad de funcionalidades, como los cvs diffs en el editor, aunque algunos de estos requieren una gran cantidad de ajustes.

También en una nota al margen si te gustan los enlaces de teclas Vim, también hay IDE que incluyen enlaces vim en sus editores para comandos simples, por ejemplo, Komodo Edit .

Para obtener ayuda sobre el aprendizaje de Vim, intente escribir 'vimtutor' en su terminal y siga las instrucciones. También hay un libro que es particularmente bueno Hacking Vim

Jamie
fuente
2

No. Aprender vim vale más que el esfuerzo.

ojblass
fuente