Hace un buen tiempo, leí un artículo del creador de viemu , aclarando muchos de los conceptos erróneos sobre vi, y explicando por qué es una buena idea (y por qué ha sido tan popular durante los últimos 30 años +). El mismo tipo también tiene un gran conjunto de hojas de trucos gráficos que enseñan los conceptos básicos de a poco.
Estoy convencido.
He estado convencido durante los últimos 2 años, de hecho. Pero todavía no he podido forzarme a aprender vi como mi editor principal, la curva de aprendizaje es demasiado alta. Cuando me pongo a trabajar, la productividad aceptable pero inmediata (usando mi editor actual) hasta ahora ha ganado una tremenda productividad más adelante (usando vi).
¿Alguien tiene algún buen consejo para ayudar a superar la curva de aprendizaje? Puede ser consejos directos, algún otro tutorial o artículo, lo que sea.
Editar: Tenga en cuenta que conozco las variantes vim / gVim , Cream y MacVim (etc.) de vi. Mantuve mi pregunta sobre vi para referirme a la familia vi en su conjunto. Gracias por todas las excelentes respuestas.
Actualización (abril de 2009)
He estado usando Vim (más precisamente, MacVim) en mi vida profesional diaria desde diciembre pasado. No voy a volver :-)
Buena suerte a todos en su dominio de Vim.
fuente
Respuestas:
En primer lugar, es posible que desee recoger Vim; tiene un conjunto de características muy superior junto con todo lo que tiene vi.
Dicho esto, se necesita disciplina para aprender. Si tiene un trabajo y no puede permitirse el éxito de la productividad (sin ser despedido), le sugiero que tome un proyecto de fin de semana con el único propósito de aprender el editor. Mantenga su documentación abierta mientras trabaja y sea lo suficientemente disciplinado como para no perder el tiempo. A medida que aprenda más, sea eficiente y comience a confiar en la memoria muscular, no será tan difícil mantenerla.
He estado usando Vim durante tanto tiempo que ni siquiera pienso en qué teclas presionar para buscar, navegar o guardar. Y mis manos nunca dejan el teclado. Usar Vim es una de las mejores elecciones que he hecho en mi carrera de programación.
fuente
Lo primero que haría es colocar un trozo de papel o un libro sobre las teclas de flecha y las teclas ins / home / end / pgup / down. Esos no son necesarios en Vi.
A continuación, me acostumbraría a presionar ctrl + [cada vez que se le indique que presione escapar. Es mucho más rápido y no necesitará quitar las manos del teclado.
Entonces miraba mis screencasts:
http://www.youtube.com/watch?v=FcpQ7koECgk
http://www.youtube.com/watch?v=c6WCm6z5msk
http://www.youtube.com/watch?v=BPDoI7gflxM
http://www.youtube.com/watch?v=J1_CfIb-3X4
Entonces, solo practica practica practica.
editar La razón para evitar las teclas de flecha es que te ralentizan. Uno de los mayores beneficios de Vim es la velocidad que le permite. Las teclas de flecha también le impiden abrazar realmente la naturaleza modal, que es muy poderosa cuando se domina.
fuente
Paso 0: aprende a tocar el tipo. En serio: si tus dedos no saben dónde están las teclas, entonces vim será un dolor. E incluso si rechaza vim, la escritura táctil mejorará su programación (pregunte a Steve Yegge ) al hacer que la mente monitoree el enlace sin fricción. Existe una gran cantidad de software que puede ayudarlo a mejorar su escritura.
Paso 1: use vimtutor para comenzar. Está en gvim (en el menú de ayuda, creo) o simplemente puede escribir 'vimtutor' en la línea de comando. Tomará 30-45 minutos de su tiempo y luego sus dedos conocerán los conceptos básicos de vi / vim y debería poder editar archivos sin querer lanzar su teclado por la ventana.
Paso 2: usa vim en todas partes. Consulte esta pregunta para obtener consejos y enlaces para usar las asociaciones de teclas vim y vi en la línea de comandos, desde su navegador web, para redactar correos electrónicos, en su IDE ... Debe usar vim para incrustar las asociaciones de teclas en su memoria muscular.
Paso 3: aprende más sobre vim. Solo habrá arañado la superficie con vimtutor. Puede ver este video o leer este artículo (ambos sobre los "Siete hábitos de una edición de texto efectiva". Puede leer sobre consejos y trucos en StackOverflow . Puede navegar por vimtips . Aprender un poco a menudo sería mi consejo - hay tanto por ahí que apegarse a trozos del tamaño de un bocado será la mejor manera de hacer que el conocimiento se mantenga.
Paso 4: Beneficio :)
fuente
He sido un usuario recurrente de vim a lo largo de los años (haciendo ocasionalmente el trabajo de administrador del sistema). Hace poco comencé a pasar más tiempo haciendo mi trabajo de programación. Sugeriría comenzar con gvim también. Se integra bien con la mayoría de los entornos de sistema operativo y (aún mejor), puede recurrir al mouse cuando lo necesite :).
Para comenzar con vim, ejecute el vimtutor (incluido con gVim) una o dos veces (toma aproximadamente una hora). ¡No puedo exagerar lo útil que fue para mí! Especialmente las primeras partes sobre las diferentes formas de moverse a través de un documento, y cómo se graban las acciones de edición con comandos de movimiento, etc., etc. Después de eso, las cosas serán MUCHO más claras.
Luego, comience a realizar ediciones rápidas y menores con él (material de reemplazo del bloc de notas) 'hasta que esté lo suficientemente cómodo como para hacer una edición útil en un clip rápido. Luego intente hacer su trabajo diario en él. ¡Pronto se encontrará con el comando "repetir última acción" en otros editores!
fuente
Solicitó buenos consejos para ayudar a superar la curva de aprendizaje en el editor de texto vi. Muchas de las respuestas anteriores sugieren que no use otros editores. Creo que es un buen consejo. Cambiar a vi desde un editor más gráfico requiere un cambio de mentalidad. Requiere pensar en términos de comandos, en lugar de cambios visuales.
No usé nada más que vi durante muchos años y creo que la única forma en que puede ser productivo es memorizar los comandos que usa regularmente. La forma en que hice esto fue hacer una breve lista de los comandos de teclado más comunes. Agrupé y codifiqué estos comandos por función, es decir, mover el cursor, editar, buscar , etc. Tuve cuidado de incluir solo los comandos más utilizados que no conocía. La idea es crear una referencia rápida que también sea una ayuda en la memorización, no reemplazar las pantallas de ayuda disponibles. Luego imprimí esta lista y la pegué a la pared detrás de mi monitor para poder verla fácilmente. (Las hojas de trucos gráficas que mencionó podrían funcionar mejor para algunos, pero probablemente sean una mejor fuente de referencia que una herramienta de memorización).
Aquí está la clave. Cuando me sentí cómodo con uno de los comandos, dibujé una línea con un lápiz. Todavía podía verlo si lo necesitaba, pero para mí era simbólico que había dominado ese comando. Eso me dio confianza y motivación, ya que pude ver un progreso regular. Una vez que tuve la mayoría de ellos tachados, los eliminé y agregué algunos de los comandos más raramente utilizados. Continué este proceso hasta que estuve satisfecho con mi comando de vi. Sabía que había llegado a ese punto cuando me di cuenta de que no había tachado ningún comando o incluso había mirado la lista en mucho tiempo.
Hace un par de años tuve que trabajar en una plataforma UNIX donde vi era el único editor disponible. Compré un pequeño libro de referencia de bolsillo sobre vi, pero apenas lo usé. Terminé haciendo listas y colocándolas en la pared como lo hice la primera vez que usé vi. Al final de la primera semana, estaba muy cómoda a pesar de que habían pasado cinco años desde que usé vi.
fuente
Para mí, VI es un buen editor de emergencias, pero no es algo que quiera usar si hay alguna otra alternativa disponible. Sin embargo, me doy cuenta de que esto no es para todos, no digo que sea horrible ni nada, solo personalmente prefiero una interfaz de usuario reconocible.
¡Pero realmente tienes que saber VI si haces algo significativo en Linux!
Entonces, aprenda los conceptos básicos: i = modo de inserción esc = salga del modo de inserción: wq = guardar y salir: q! = No guardar y salir de x = cuando no esté en modo de inserción, elimine el carácter. / = buscar
Eso lo ayudará a superar cualquier emergencia de edición. No hay nada que no pueda hacer con esos pocos comandos (y navegación, por supuesto). El resto se puede "agregar" a medida que los necesite.
Sin embargo, tenga una referencia o libro disponible; cuando NECESITA usar VI, probablemente no podrá navegar por la web, pero la página de manual puede ser algo útil.
fuente
no te fuerces. el camino para dominar el amor es.
fuente
Debe comenzar con vim (Vi IMproved) y especialmente su GUI - gVim . La GUI tiene menús y en Windows puede usar los accesos directos para copiar, cortar y pegar, por lo que puede reemplazar el Bloc de notas inmediatamente. Y dado que los menús muestran los accesos directos (comandos vim), puede aprender mucho.
Otra cosa que debe hacer desde el principio es configurar vi para sus necesidades. Por ejemplo, puede transformar vim en un IDE de Python . Al hacer esto, no tendrá excusa para usar otro editor, porque vi le ofrecerá todo lo que necesita.
fuente
eliminar todas las demás aplicaciones de editor de texto
Entonces tendrás que aprenderlo.
fuente
La forma más sencilla de forzarse puede ser simplemente eliminar todos los demás editores de su máquina. Deshazte de la tentación :)
fuente
Cada vez que realice una tarea de edición compleja, siga preguntándose si hay una forma más eficiente de hacerlo. La mayoría de las veces, cuando es algo que puede describir en términos simples (como "intercambiar párrafos de texto" o "eliminar todo después del carácter X en las líneas comentadas"), es algo que puede hacer con solo un par de pulsaciones de teclas en vim.
Hay algunas características clave que son extremadamente útiles, y las usarás todo el tiempo. Los que más amo son:
Pregunte a otros programadores qué características encuentran más útiles y adopte las que mejor se adapten a su cerebro. Robar ideas de otras personas
.vimrc
( aquí está la mía )fuente
EDITAR: he creado una tarjeta flash en el sitio de repetición espaciada en línea flashcarddb.com , en caso de que esté interesado ...
fuente
Escribí una guía para una edición eficiente con Vim hace un tiempo. Puede que le resulte útil.
Retrocedería un minuto y me pregunto "¿por qué quiero aprender este editor? ¿Qué me hace pensar que será más rápido o mejor que mi editor de texto actual?" Luego, aprenda las características que harán que Vi (m) sea indispensable para usted.
Por ejemplo, la integración CTags de Vim es completamente indispensable para mí. Trabajo con una base de código muy, muy grande, y la capacidad de saltar a una definición de función o clase de una sola vez (independientemente del archivo en el que se encuentre) es una característica absolutamente asesina, sin la cual tengo problemas para trabajar.
Use su archivo .vimrc para crear macros que automaticen tareas comunes.
Su editor-selector de piloto automático elegirá el editor que hará el trabajo más rápido y con la menor cantidad de esfuerzo mental. Un pequeño trabajo de preparación asegurará que el editor sea Vim. :-)
fuente
Dos cosas que mejorarán enormemente tus habilidades vi:
fuente
Mi sugerencia: comience con algo pequeño. Simplemente comience memorizando un pequeño conjunto de comandos más útiles. Cuando comencé vi, estos fueron mis 10 principales:
Se puede realizar una gran cantidad de edición básica utilizando solo estos comandos. Una vez que te sientas cómodo, el resto no parece demasiado difícil.
Por cierto, me gustaría agregar que solía confiar en vi para mi editor de texto principal, pero ahora solo si tengo que hacerlo. En mi caso, la productividad es mejor cuando uso herramientas como Emacs o Visual Studio (tenga en cuenta: "en mi caso"). Pruebe más de una herramienta y elija la que más le ayude a su productividad. ¡Buena suerte!
fuente
Suena tonto, pero jugar juegos roguelike (como Nethack o Angband ) es una forma divertida de sentirse cómodo con el uso de las teclas
h
/j
/k
/l
para la navegación del cursor.fuente
Escriba todos los atajos y funciones que usa en su editor actual mientras lo usa en el trabajo. Luego, siéntate el sábado por la mañana y usa Google y el desbordamiento de pila para descubrir cómo hacer cada uno de esos en vi. Probablemente sea mejor si usa una hoja (u hojas) de papel para esto.
Ahora deshabilite / elimine los otros editores en el trabajo para que le lleve más tiempo encontrarlos y volver a instalarlos que mirar su hoja de comparación y hacerlo en vi, es decir, no tiene otra opción.
Por último, publique su lista de accesos directos cruzados desde su antiguo editor al nuevo en su blog.
¡Buena suerte!
fuente
¿No usas X11 ?
¿Cambiar su shell de inicio de sesión a vi ?
Primero, ¿te obligas a usar ed , luego vi parecerá un lujo?
¿Usar las combinaciones de teclas vi en bash ?
¿Simplemente comienza a usar vi todo el tiempo?
Me parece que aprender un editor no es muy diferente de aprender un idioma. La inmersión funciona mejor.
Uso vi para ediciones realmente rápidas o cuando no puedo usar X11 por alguna razón, pero vivo en emacs . Vale la pena tomarse el tiempo para aprender editores realmente poderosos.
fuente
Mi recomendación es crear algunos programas simples y escribirlos, de principio a fin, utilizando VI.
Lo más probable es que al principio se sienta demasiado frustrado por la curva de aprendizaje como para obligarse a usarlos en el trabajo o en cualquier entorno sensible al tiempo.
He hecho esto antes para familiarizarme con los entornos / editores, y funciona bastante bien.
Si tiene problemas para escribir cosas, le recomiendo rehacer los proyectos que hizo en la escuela (o cualquier otra cosa que haya hecho anteriormente). Este método tiene la ventaja adicional de permitirle ver en qué medida se ha convertido en un mejor desarrollador. :)
Editar: olvidé mencionar que debe hacer esto completamente desde la consola para evitar la tentación de usar el mouse.
fuente
Recuerdo cuando comencé a aprender emacs, fue después de que ya me sentía muy cómodo con Vim, y estaba en el mismo barco o en uno similar que tú, donde supe cómo hacer mucho en otro editor, así que cuando comencé usando emacs, siempre fue dolorosamente lento.
Sin embargo, creo que lo que tendrá que hacer es absorber un poco del dolor, y siempre, siempre, SIEMPRE asegúrese de buscar la documentación para hacer algo que sabe que puede hacer en su editor anterior, como como moverse al final de una línea o seleccionar una región de texto.
También es útil si tiene a mano un experto en vi local para hacer preguntas, o si es como nuestra empresa, promueve la programación de pares. De esa manera, cuando intente hacer algo que debería ser fácil, simplemente puede preguntarle a alguien, le mostrarán cómo y si usa el editor regularmente durante algunas semanas, no debería tener que pedir más. entonces un par de veces antes de que se convierta en una segunda naturaleza.
Si no tiene recursos locales, hay muchos libros / tutoriales / hojas de referencia en línea que deberían poder responder a la mayoría de sus preguntas.
En última instancia, aprender Vi es como aprender otras habilidades, no hay una bala de plata y tendrás que aceptar que, por un tiempo, serás menos productivo que tu editor actual. Solo sigue diciéndote a ti mismo: "Otras personas han podido aprender Vi, y al menos soy tan inteligente como ellos" (Eso es lo que me digo a mí mismo de todos modos :))
fuente
La razón principal para usar
vi
esssh
(o Putty en Windows): cuando inicias sesión en un servidor Unix de forma remota,vi
siempre está disponible. Y funciona con VT100 cuando ni las teclas del cursor ni la tecla de retroceso / eliminación están asignadas.También tener un libro como VI Editor Pocket Reference es de gran ayuda.
fuente
gVIM tiene un tutorial realmente bueno (enlace en el grupo del menú Inicio).
Descubrí que trabajar a través de eso ayudó a superar la dificultad inicial de aprendizaje; y luego cambiar mi Visual Studio a ViEMU me ayudó a perfeccionar mis habilidades de VI.
Además, ¡los screencasts en http://vimcasts.org/ son geniales!
fuente
Puede obtener uno de los teclados originales de Happy Hacker (sin teclas de flecha) y colocar su mouse (inalámbrico) fuera del alcance cada vez que comience a editar.
fuente
Es fácil escribir una gran lista de comandos / atajos, pero es difícil recordarlos todos sin práctica.
Concéntrese en un nuevo comando a la vez. Cuando se vuelve automático, digamos que después de usarlo durante una semana o dos, agregue otro a su repertorio.
Tomarás el camino más largo para lograr ciertas cosas a corto plazo: estas son oportunidades obvias para que los nuevos atajos aprendan.
En mi experiencia, fue más fácil cuando traté de no asumir demasiado de una vez.
fuente
Mi sugerencia número uno: aprender a escribir rápido, sin necesidad de mirar el teclado.
Si no puede tocar escribir y siempre está buscando y picoteando el colon o el hjkl o:% s / foo / bar, olvídalo. Escribir puede ser más rápido que usar el mouse, pero si ese no es tu caso, vi no funcionará.
Pero combinar buenas habilidades de escritura, ssh y screen y vi será natural.
fuente
Afronte el hecho de que creará un éxito inmediato en el rendimiento. Al aprender una nueva herramienta, debe poder hacer algo que sabe hacer con otras herramientas para que el problema no sea su problema. Después de usar la nueva herramienta, desaparecerá un tiempo y solo se centrará en el problema subyacente.
Con algo como vim (como han dicho otros, vim es muy superior a vi) es importante releer y examinar la documentación periódicamente. La interfaz es completamente imposible de descubrir sin ella. Con cada nueva lectura verá una función y dirá: "ah, ja, eso habría resuelto este problema que estaba tratando de resolver la semana pasada", y lo archivará en su cerebro. Las soluciones relacionadas con problemas del mundo real que ha tenido son mucho más fáciles de recordar que los accesos directos aleatorios.
Al final, puede usar vim con un subconjunto bastante pequeño de sus características, así que no se sienta abrumado con todas las campanas y silbatos. Piense en todas las características de Word, ¿las usa el 99% de las personas?
fuente
ESC gg=G
reiniciar código y:retab
convertir pestañas en espacios o espacios en pestañas fue lo que me enganchó a vim. Por lo tanto, en realidad no necesita ser forzado a usarlo, solo tiene que aprender cuándo puede ayudarlo a aumentar su velocidad.Ir a través
vimtutor
.Comience a usar vim para una edición simple, como archivos de configuración o html. Aprende los comandos cuando los necesites.
Busque en Google un buen .vimrc utilizado por alguien que use una cadena de herramientas que se parezca a la suya. Active el resaltado de sintaxis. Encuentra una buena combinación de colores.
Aprenda macros porque Vim es lo mejor para tareas automatizadas e inserción de fragmentos, como formatear algunas palabras en una etiqueta XML compleja o convertir un CSV en una tabla HTML.
fuente
Es posible que desee comenzar con Cream. Cream se describe a sí misma como "una configuración moderna" de vim. Básicamente, es una versión especial de vim que se ve y se siente como cualquier otro editor de texto para todos los fines prácticos. Pero habilite el "modo experto" y tendrá todo el poder y el comportamiento de vim.
Por lo tanto, puede comenzar a usar Cream como un editor de texto normal y luego experimentar con el "modo experto" hasta que esté lo suficientemente cómodo como para cambiar completamente a vim.
fuente
Instalar en pc
gVim
en todas las plataformas que use.Luego, ejecute el vimtutor (
:help vimtutor
ovimtutor
en la línea de comando).Vea la siguiente conferencia y siga sus consejos: 7 hábitos para una edición de texto efectiva 2.0
Digo que definitivamente quieres comenzar a usarlo para toda tu edición. Si temes una pérdida de productividad, tómate un fin de semana para practicarlo de manera sólida (una vez hice esto para cambiar a dvorak de qwerty y tuve mi productividad lo suficientemente alta el lunes y logré mantenerlo después).
¡Vale la pena el esfuerzo y no mirarás hacia atrás!
fuente
Personalmente, lo que tenía que hacer era asegurarme de que podía usar las combinaciones de teclas de Vim (o al menos, lo suficientemente cerca) en varias aplicaciones. Tener que cambiar completamente la forma en que editaba el texto cada vez que cambiaba los editores dificultaba que el estilo de edición de Vim se comprometiera con la memoria muscular.
En mi caso, Viemu + vimperator hizo el truco.
fuente