Hace un buen rato, leí un artículo del creador de viemu , aclarando muchos de los conceptos erróneos sobre vi, además de explicar por qué es una buena idea (y por qué ha sido muy popular hasta el final 30 años +). El mismo tipo también tiene un gran conjunto de hojas de trucos gráficas que enseñan lo básico unos pocos bits a la vez.
Estoy convencido.
He estado convencido de los últimos 2 años, de hecho. Pero todavía no he logrado 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 sobre la tremenda productividad más adelante (usando vi).
¿Alguien tiene buenos consejos para ayudar a superar la curva de aprendizaje? Puede ser directamente consejos, algún otro tutorial o artículo, lo que sea.
Edición: Tenga en cuenta que estoy al tanto de las variantes vim/gVim , Cream y MacVim (etc.) de vi. Mantuve mi pregunta sobre vi para referirme a la familia vi en general. Gracias por todas las grandes respuestas.
He estado usando Vim (más precisamente, MacVim) en mi vida profesional diaria desde el pasado diciembre. No voy a volver :-)
Buena suerte a todos en su dominio de Vim.
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 impacto de la productividad (sin ser despedido), sugiero encargarse de 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 volverse loco. A medida que aprendas más, hazte eficiente y comienza a confiar en la memoria muscular, no será tan difícil seguir con ella.
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.
Lo primero que haría es poner un pedazo de papel o un libro sobre sus teclas de flecha y sus teclas de entrada/inicio/fin/pgup/abajo. Los que no son necesarios en Vi.
A continuación, me acostumbraría a presionar ctrl + [cuando te digan que golpees escapar. Es mucho más rápido y no necesitarás quitar las manos del teclado.
Luego 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, sólo practica la práctica práctica.
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 te permite. Las teclas de flecha también le impiden abrazar realmente la naturaleza modal, que es muy poderosa cuando se domina.
Paso 0: aprender a tocar el tipo. En serio, si tus dedos no saben dónde están las llaves, entonces Vim va a ser un dolor. E incluso si rechaza vim, la escritura táctil mejorará mejorará su programación (pregunte Steve Yegge ) haciendo que la mente monitoree la fricción del enlace. Hay una lot de software que puede ayudarlo a mejorar su escritura.
Paso 1: use vimtutor para comenzar. Está en gvim (creo que en el menú de ayuda) o simplemente puede escribir 'vimtutor' en la línea de comandos. Tomará de 30 a 45 minutos de su tiempo y luego sus dedos sabrán lo básico de vi/vim y podrá editar archivos sin querer tirar su teclado por la ventana.
Paso 2: usa vim en todas partes. Consulte esta pregunta para obtener sugerencias y enlaces sobre el uso de enlaces 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 incrusta los enlaces clave en tu memoria muscular.
Paso 3: aprender más sobre vim. Solo habrás arañado la superficie con vimtutor. Puede ver este video o leer este artículo (ambos sobre los "Siete hábitos de edición efectiva de texto". Puede leer sobre tips y tricks en StackOverflow . Puedes navegar vimtips . Aprender un poco a menudo sería mi consejo: hay tanto por ahí que pegarse a trozos pequeños es la mejor manera de hacer que el conocimiento se adhiera.
Paso 4: Beneficio :)
A lo largo de los años, he sido un usuario de vim de nuevo, de nuevo, de nuevo (haciendo el trabajo ocasional de administrador de sistema). Recientemente empecé a pasar más tiempo haciendo mi trabajo de programación en él. Yo sugeriría comenzar con gvim también. Se integra bien con la mayoría de los entornos de SO, 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 (tarda aproximadamente una hora). ¡No puedo exagerar lo útil que fue para mí! Especialmente las primeras partes acerca de 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. 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 a un ritmo rápido. Luego trata de hacer tu trabajo diario en él. ¡Te encontrarás con ganas de "repetir la última acción" en otros editores en un momento!
Pidió buenos consejos para ayudar a superar la curva de aprendizaje en el editor de texto vi. Muchas de las respuestas anteriores sugieren que no utilice 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 utilicé 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 habitualmente. La forma en que lo hice fue hacer una breve lista de los comandos de teclado más comunes. Agrupé y codifiqué por colores estos comandos por función, es decir, Moviendo el cursor, editando, buscando , etc. Tenía 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 para la memorización, no para reemplazar las pantallas de ayuda disponibles. Luego imprimí esta lista y la pegué en 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 son 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 yo hubiera dominado ese comando. Eso me dio confianza y motivación, ya que podía ver el progreso regular. Una vez que tuve la mayoría de ellos tachados, los quité y agregué algunos de los comandos más raramente usados. Continué este proceso hasta que estuve satisfecho con mi orden de vi. Sabía que había llegado a ese punto cuando me di cuenta de que no había tachado ningún comando ni siquiera 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 consulta de bolsillo en vi, pero apenas lo usé. Terminé haciendo listas y publicándolas en la pared como lo hice la primera vez que usé vi. Al final de la primera semana, me sentí muy cómodo a pesar de que habían pasado cinco años desde que había usado vi.
Debe comenzar convim(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 como los menús muestran los accesos directos (comandos vim), se puede aprender mucho.
Otra cosa que debe hacer desde el principio es configurar vi para sus necesidades. Por ejemplo, puede transformar vim en un Python IDE . Al hacer esto, no tendrá excusa para usar otro editor, porque vi le ofrecerá todo lo que necesita.
Para mí, VI es un buen editor de emergencias, pero no es algo que quiera usar si hay alguna otra alternativa disponible. Me doy cuenta de que esto no es para todos, sin embargo, no estoy diciendo que sea horrible o algo así, personalmente prefiero una interfaz de usuario visible.
¡Pero realmente tienes que saber VI si haces algo significativo en Linux!
Así que simplemente aprenda lo básico: i = modo de inserción esc = dejar modo de inserción: wq = guardar y salir: q! = No guardar y salir x = cuando no esté en modo de inserción, elimine el carácter./= buscar
Eso te llevará a través de cualquier edición de emergencia. No hay nada que no puedas hacer con esos pocos comandos (y la navegación, por supuesto). El resto puedes "Tack on" según los necesites.
Sin embargo, mantenga una referencia o un libro disponible (cuando NECESITA usar VI, probablemente no podrá navegar por la web), pero la página de manual puede ser algo útil.
no te fuerces El camino al dominio del amor es.
eliminar todas las demás aplicaciones de editor de texto.
Entonces tendrás que aprenderlo.
La forma más sencilla de force yourself podría ser simplemente eliminar a todos los demás editores de su máquina. Deshazte de la tentación :)
Cada vez que realice una tarea de edición compleja, siga preguntándose si existe 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 líneas comentadas"), es algo que puede hacer con solo pulsar un par de teclas en vim.
Hay algunas características clave que son extremadamente útiles, y terminarás usando todo el tiempo. Los que más amo son:
Pregunte a otros programadores qué funciones les resultan más útiles y adopte las que se ajusten mejor a su cerebro. Robar ideas de los .vimrc
s de otras personas ( aquí está la mía )
EDITAR: He creado una tarjeta de memoria flash colocada en el sitio de repetición espaciada en línea flashcarddb.com , en caso de que esté interesado ...
Escribí una guía para edición eficiente con Vim a hace un tiempo. Puede que le resulte útil.
Daría un paso atrás por un minuto y me preguntaba "¿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 función o definición de clase en una pulsación de tecla (independientemente del archivo en el que esté) es una característica absolutamente asesina, una con la que tengo problemas para trabajar.
Use su archivo .vimrc para hacer 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 el menor esfuerzo mental. Un poco de trabajo de preparación asegurará que el editor sea Vim. :-)
Dos cosas que mejorarán enormemente tus habilidades de vi:
Mi sugerencia: empezar poco a poco. Simplemente comienza por memorizar un pequeño conjunto de comandos más útiles. Cuando empecé vi, estos eran mis 10 mejores:
Se puede hacer mucha edición básica usando 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 ayude a su productividad. ¡Buena suerte!
Anote todos los atajos y las funciones que usa en su editor actual mientras lo usa en el trabajo. Luego siéntese el sábado por la mañana y, usando Google y el desbordamiento de pila, descubra cómo hacer cada uno de los de vi. Probablemente sea mejor si usa una hoja (o hojas) de papel para esto.
Ahora deshabilite/borre los otros editores en el trabajo para que le lleve más tiempo encontrarlos y reinstalarlos 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 a su nuevo en su blog.
¡Buena suerte!
No use X11 ?
$ sudu rm /usr/local/bin/emacs
Cambie su shell de inicio de sesión a vi ?
Primero, obligate a usar ed , luego vi ¿parecerá un lujo?
Utilice los enlaces de teclas vi en bash ?
¿Empezar a usar vi todo el tiempo?
Me parece que aprender un editor no es terriblemente 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 . Los editores realmente poderosos merecen tomarse el tiempo para aprender.
La razón principal por la que uso vi
es ssh
(o PuTTY en Windows): cuando inicias sesión en un servidor Unix de forma remota, vi
siempre está disponible. Y funciona con VT100 cuando no se asignan las teclas de cursor ni el retroceso/eliminación.
También tener un libro como VI Editor Pocket Reference ayuda mucho.
Recuerdo que cuando empecé a aprender emacs, fue después de que ya estaba muy cómodo con Vim, y estaba en el mismo bote o similar en el que estabas, donde sabía cómo hacer mucho en otro editor, así que empecé usando emacs, siempre fue dolorosamente lento.
Sin embargo, creo que lo que tendrá que hacer es absorber un poco el dolor, y siempre, SIEMPRE asegúrese de consultar la documentación para hacer algo que usted sepa puede hacer en su Editor anterior, como moverse al final de una línea o seleccionar una región de texto.
También es útil si tiene a mano un vi-experto local para que pueda hacer preguntas, o si es como nuestra empresa, promueve la programación de pares. De esa manera, cuando intenta hacer algo que debería ser fácil, simplemente puede preguntar a alguien, le mostrarán cómo y si usa el editor regularmente durante unas semanas, no debería tener que preguntar más. luego 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 la mayoría de sus preguntas.
En última instancia, aprender Vi es como aprender otras habilidades, no hay ninguna bala de plata, y tendrás que aceptar que, por un tiempo, serás menos productivo en eso que tu editor actual. Solo sigue diciéndote: "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 :))
Mi recomendación es crear algunos programas simples y escribirlos, de principio a fin, usando VI.
Lo más probable es que al principio te sientas demasiado frustrado por la curva de aprendizaje para obligarte 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 encontrar cosas para escribir, 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. :)
Edición: olvidé mencionar que debes hacer esto por completo desde la consola para evitar cualquier tentación de usar el mouse.
gVIM tiene un tutorial realmente bueno (enlace en el grupo del menú Inicio).
Encontré que trabajar a través de eso ayudó a superar la joroba de aprendizaje inicial; 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!
Es posible que desee comenzar con crema. 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 propósitos prácticos. Pero habilite el "modo experto" y tendrá todo el poder y el comportamiento de vim.
Así que puedes comenzar a usar Cream como un editor de texto regular y luego experimentar con el "modo experto" hasta que te sientas lo suficientemente cómodo como para cambiar completamente a vim.
Instala gVim
en todas las plataformas que uses.
Luego ejecute el vimtutor (:help vimtutor
o vimtutor
en la línea de comandos).
Mire la siguiente conferencia y siga sus consejos: 7 hábitos para la edición eficaz de texto 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 desde qwerty y tuve mi productividad lo suficientemente alta para el lunes y logré seguir adelante).
¡Vale la pena el esfuerzo y no mirarás atrás!
Puede obtener uno de los teclados originales de Happy Hacker (sin teclas de flecha) y colocar su mouse (inalámbrico) fuera de su alcance cada vez que comience a editar.
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 convierta en automático, por ejemplo, después de usarlo durante una o dos semanas, agregue otro a su repertorio.
Tomará el camino más largo para lograr ciertas cosas a corto plazo: estas son oportunidades obvias para que aprendan nuevos atajos.
En mi experiencia, fue más fácil cuando intenté no tomar demasiado a la vez.
Mi sugerencia número uno: aprender a escribir rápido, sin necesidad de mirar el teclado.
Si no puedes tocar el tipo y siempre estás buscando y pulsando 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 el caso para ti, la interfaz de usuario no va a funcionar.
Pero si combina buenas habilidades de escritura, ssh y screen y vi será natural.
ESC gg=G
para volver a escribir el código y :retab
para convertir las pestañas en espacios o espacios en pestañas fue lo que me conectó a vim. Así que, en realidad, no es necesario que te obliguen a usarlo, solo debes aprender cuándo puede ayudarte a aumentar tu velocidad.
Ir a través de vimtutor
.
Comience a usar vim para una edición simple, como archivos de configuración o html. Aprende los comandos a medida que 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 un esquema de color agradable.
Aprenda macros porque Vim es el 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.
Enfrenta el hecho de que creará un impacto de rendimiento inmediato. Al aprender una nueva herramienta, debe poder hacer algo que sepa hacer con otras herramientas para que el problema no sea su problema. Después de usar la nueva herramienta por un tiempo, desaparecerá y solo se enfocará en el problema subyacente.
Con algo como vim (como han dicho otros, vim es muy superior a vi) es importante volver a leer y examinar la documentación periódicamente. La interfaz es completamente indiscutible sin ella. Con cada nueva lectura, verás una característica y dirás: "ah, ja, eso habría solucionado este problema que estaba tratando de resolver la semana pasada", y lo archivaré en tu cerebro. Las soluciones conectadas a los problemas reales que ha tenido son mucho más fáciles de recordar que los accesos directos aleatorios.
Al final, puedes usar vim con un subconjunto bastante pequeño de sus características, así que no te sientas abrumado con todas las campanas y silbidos. Piense en todas las funciones de Word, ¿el 99% de las personas las usa?
Cuando era mucho más joven (once), mi familia se mudó a Alemania por un par de años. Pude aprender el idioma a través de la inmersión; simplemente no tuve más remedio que hablar el idioma (aunque si estuviera en una situación grave, podría encontrar un hablante de inglés).
Mi sugerencia es que hagas lo mismo, a menos que estés en una situación absolutamente desesperada (por ejemplo, "ok, acabo de eliminar/etc/passwd y necesito volver a la raíz"), toma la decisión consciente de hacer lo mejor que puedas con vi. En realidad, no es tan largo aprender los conceptos básicos, si está dispuesto.
Como otros han sugerido,
vim-tutor
puede ser un muy buen punto de partida, como puede esta imagen .
Utilice el método de la nota post-it :-)
Cuando use gvim, permítase usar los menús. Lee un libro/tutorial sobre vim para que conozcas los conceptos básicos. (Insertar y modo de comando)
Seleccione algunas funciones realmente interesantes que cree que necesita y escríbalas en notas post-it y luego péguelas en la parte inferior del monitor.
Un buen comienzo es probablemente i, a, o, gg, G,: 10,/algo
y algunos cortar y pegar como yy, dd, p
y simplemente complete con v, V (el modo visual) + cortar y pegar
Luego, cuando los conozca, sustitúyalos en post-it con uno nuevo que tenga una función aún más fresca, y repita hasta que esté satisfecho.
/ Johan
¿Cómo forzarte? Mi consejo es que te encuentres en un entorno de trabajo donde tengas que mantener 10 cajas unix telnetting/puttying desde windows. Rápidamente se dará cuenta de que la única forma de editar texto de manera eficiente en múltiples variantes de * nix es usar un editor estándar que venga con casi todas las distribuciones que conozco. Además, cuando X11 no se inicia en una instalación nueva, vi es tu único amigo :)
Aprendí vim/vi hace más de diez años cuando estaba haciendo mi maestría. En aquel entonces, la única máquina a la que tengo acceso son las estaciones Sun Sparc (Sparc 20, creo). Y vi es lo único que está en él. ¡Así que una cosa que puedes hacer para "forzarte" es desinstalar cualquier otro editor que tengas!
Personalmente, lo que tenía que hacer era asegurarme de que podía usar los enlaces de teclas Vim (o al menos, lo suficientemente cerca) en varias aplicaciones. Tener que cambiar por completo la forma en que edité el texto cada vez que cambiaba los editores hacía que fuera demasiado difícil lograr que el estilo de edición Vim se comprometiera con la memoria muscular.
En mi caso, Viemu + vimperator hizo el truco.
Solo aprendí vi cuando comencé a trabajar para un ISP donde los scripts para editar dominios solo abrían vi en un terminal. No tenía más remedio que aprenderlo, pero nunca me arrepentí.
En resumen, ponte en una situación en la que no tengas más remedio que aprenderlo.
Comenzaría con argdo , y una vez que te enamoras de eso, el resto es fácil ...
Pase un par de horas en el sitio de los amantes de vi http://nereida.deioc.ull.es/html/vilovers.html - un montón de tutoriales, enlaces, etc. con entusiastas fanáticos de vi.
Una cosa que encontré realmente confusa en vi (vim?) Moderno es el modo de entrada que permite algunas, pero no todas las características del modo de comando. Me siento mucho más cómodo cuando el modo de entrada está completamente en modo de "sobrescribir solo, no es posible mover el cursor", algo que tiene el viejo Solaris vi. El verdadero vi requiere que permanezcas en modo de comando la mayor parte del tiempo.
Dicho esto, no hay necesidad de aprender vi hoy en día, emacs es igual de ubicuo. :)
Espere hasta que tenga que depurar un problema extraño y maravilloso en un entorno en vivo donde todo lo que puede hacer es llegar a la línea de comandos. Puede que no te guste el VI, pero te ahorrará mucho tiempo y aprenderás montones de trucos para avanzar a través de archivos masivos (de registro).
Si bien soy un gran fan de vi en general, y vim en particular, hay muchos editores poderosos, y no deberías sentir que necesitas usar vi, o de alguna manera es un editor absolutamente perfecto, porque no lo es.
Si tiene que obligarse a usar vi, me preocuparía que no se sienta productivo al usarlo. Sin embargo, si usted insiste en persistir, probablemente me aseguraría de usar vi para cada tarea de edición. Siempre que necesito hacer algo y no conozco la mejor manera de hacerlo, trato de encontrar el óptimo (en términos de pulsaciones mínimas) para hacerlo en vi después de Lo hice una vez -tiempo normal óptimo. Luego haría una nota post-it con este pequeño consejo (o tal vez solo un archivo de texto) para recordarlo la próxima vez.
Con el tiempo, su productividad con vi mejorará dramáticamente.
Aprendí vi del excelente libro de O'Reilly "Aprendiendo el editor vi" .
¿Por qué no me lanzo con mi propia forma de baja fricción para forzarme? :-)
Lo que hago es simple: intento que mi git confirme los mensajes con vim (editor predeterminado cuando no especifica un mensaje en la línea de comandos).
Por supuesto, un mensaje de confirmación es tan corto que apenas ayuda. Pero cuando reeditas un mensaje con git commit --amend
es más útil.
Imprime una de las muchas hojas de trucos de Vi/Vim que puedes encontrar en Internet y obliga a seguir con ella durante algunas semanas.
Una vez que aprendas algunos comandos básicos puedes ser bastante eficiente. A partir de ahí, solo sigue enchufándote y aprende un nuevo comando de vez en cuando. No hay forma de que puedas aprender TODOS los comandos vi. ¡¡Creo que hay más comandos vi que átomos en el universo !! :)
La forma en que lo hice fue tomarme unos minutos inicialmente para repasar las cosas más básicas: mover el cursor, buscar hacia adelante y hacia atrás, saltar a las palabras/oraciones/párrafos siguientes y anteriores, etc. Insertar, agregar. Lo que sea que puedas caber en tu cabeza. Entonces, cuando tengas que hacer algo que no tienes que hacer en los próximos 15 segundos, hazlo tú mismo.
Cuando esté bastante cómodo con lo básico, aprenda lentamente los comandos más avanzados, especialmente aquellos que aprovechan su aprendizaje anterior (como reemplazar las siguientes 3 palabras o eliminar al siguiente objetivo de búsqueda)
Me encanta usar VI, una vez que aprendí cómo hacerlo. Los comandos avanzados son mucho más poderosos de lo que la mayoría de los editores de GUI parecen ofrecer, y el hecho de que sea ubicuo y esté basado en texto, y que esté disponible a través de ssh, es mucho mejor.
Haz lo que hice. Úsalo para todo, y pasa el tiempo en #vim en freenode.
Google es tu amigo. Mantenga una ventana o pestaña a mano y cuando tenga que hacer algo varias veces, diga el código de sangría o busque con una expresión regular, búsquelo. Los mejores sitios de sugerencias se harán familiares, marcarán algunos y tal vez impriman una hoja de trucos.
Comencé a usar VI porque es el editor predeterminado en casi todos los sistemas operativos, excepto en Windows. Por otra parte, no hago mucha codificación en Windows, así que eso ayuda.
Si desea forzarse en un sistema * NIX/OSX, simplemente elimine los otros editores o alias. Para el resto depende de ti mismo. Cada vez que no use VI para editar un archivo, no obtendrá una cookie.
¿La mejor manera? Configure su terminal para utilizar las combinaciones de teclas vi.
elimine notepad.exe y cree un acceso directo a vim llamado notepad en su lugar :)
o realice toda la codificación a través de ssh o en una máquina que no tenga GUI;)
He intentado mantener una pequeña hoja de trucos o notas adhesivas de comandos comunes de vi. Hago lo mismo para un IDE que uso. Encuentro que si pongo notas adhesivas de atajos de teclado o comandos en mi (s) monitor (es) me ayuda a aprenderlos. Una vez que haya usado el atajo lo suficiente y creo que lo recuerdo bien, quitaré la nota adhesiva.
enlace simbólico a cada editor de terminal en su sistema para vim y enlace simbólico a cada editor gráfico de su sistema a un script que abre una nueva ventana de terminal con vim en ejecución.
Lo usé para editar archivos en el servidor web que era Linux en lugar de usar FTP. Eso fue hace 9 años y desde entonces he dominado las habilidades.
La otra cosa es encontrar algo excelente que pueda hacer en VI, como buscar y reemplazar globalmente o algo aún más poderoso, y usar VI siempre que lo necesite.
Cuando necesita buscar rápidamente algo, tenerlo todo en una página puede ayudar.
Si te obligas a usarlo durante unos días, verás que los comandos pronto se convertirán en una segunda naturaleza. Si está en un sistema posix, le recomiendo que comience con el nvi con licencia BSD, un clon clásico 1: 1 vi, y luego continúe con vim. Si comienza con vim, es probable que solo use un subconjunto de los comandos de edición porque su modo INSERT es muy similar a los editores de GUI.
umm, es más una pregunta de fisología que una pregunta de programación, pero la mejor forma en que he podido hacer cosas que realmente no quería hacer es simplemente hacerlo, y dejar de intentar hacer cosas para motivarme para hacerlo.
Solo piénsalo como cepillarte los dientes. ¿Tienes que motivarte para hacerlo? No, sólo lo haces.
Pase diez años publicando en Usenet desde una máquina donde solo estaban disponibles vi y emacs (y donde emacs tuvo un tiempo de arranque largo y molesto cuando se invoca desde 'rn').
Así lo aprendí.
Pero para un enfoque más rápido, todo lo que puedo recomendar es que simplemente se comprometa a aprenderlo y dedique algunas horas a trabajar en algún código fuente. Instale vim si aún no lo tiene; tiene características maravillosas de resaltado de sintaxis.
Vale la pena. Sé que puedo ir a casi cualquier máquina Unix, en cualquier parte del mundo occidental, tal vez incluso a través de una conexión de acceso telefónico lenta o en una máquina sin GUI, y ser completamente productivo en minutos.
Tengo VI en Windows, la versión que uso se indica a continuación, si estoy en una ventana de consola, siempre tengo el valor predeterminado en VI, independientemente del sistema operativo en el que esté, sé que puedo editar el archivo. Por el contrario, si estoy en modo UI, uso Notepad ++ go figure.
NT VI - Versión 0.23 Desarrollado por: Tony Andrews Basado en un programa por: Tim Thompson
Me vi obligado a aprender Vim para mi primer trabajo de programación cuando tenía 16 años (el jefe no nos dejaba usar nada más), pero no hice ningún progreso real hasta que leí Libro de Vim de Steve Oualline - Es muy recomendable como punto de partida si desea ponerse serio con vim.
Vim realmente requiere más tiempo para dominar que algunos lenguajes de programación (las características son that complex). Intentar "dominar" Vim imprimiendo hojas de trucos sería como tratar de dominar a Haskell leyendo un par de publicaciones de blog. Esté preparado para invertir un tiempo serio y será bien recompensado.
Me hice una hoja de trucos práctica de una página y la usé para aprender todas las características no básicas. Sin embargo, la práctica es la única manera de dominar cualquier cosa.
vi es bueno porque está en todas las computadoras de tipo UNIX, Mac OS X, Solaris, Linux. ¿Encontrar una vieja caja de decstation en eBay? Tiene vi. ¿Qué hay de Sun OS 4? vi de nuevo.
Juega un montón de nethack. Eso fue lo que hice cuando estaba en la universidad, y más tarde descubrí que el movimiento del cursor era el mismo. Aunque en este punto es posible que deba cambiar la configuración para usar el mapa de teclas de estilo vi.