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.
Respuestas:
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 )
fuente
¿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
sudo
edició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:
:w
Enter(escribir):q!
Enter:wq
EnterA partir de ahí, el resto te hará más rápido.
fuente
La ejecución de vimtutor solo me llevó 30 minutos, lo que fue suficiente para familiarizarme con vim. Valió la pena cada segundo.
fuente
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!
fuente
<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.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:
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
:No es la mitad del esfuerzo que crees que va a ser. Ejecute el tutorial de Vim una vez (
vimtutor
en 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 usarVim
en el trabajo sin recibir ningún golpe de productividad notable en menos de una semana de almuerzo.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
:Es adictivo, y te encontrarás deseando poder usar
Vim
comandos en toda tu informática, y maldiciendo cuando no puedas. Afortunadamente, al menos para algunas situaciones, hay formas de evitar esto .Nuevamente, es adictivo, y aunque no perderá productividad al usarlo realmente
Vim
, perderá horas buscando buenos consejos para mejorarVim
aún más su experiencia, y leyendo la etiqueta Vim en Stack Overflow.fuente
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.
fuente
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/nN
Esc. Puedes hacer los huesos desnudos con soloi:wq
Esc .Las dos primeras teclas que necesita saber son: lo Esclleva al modo de comando (el modo en que comienza) y lo
i
lleva al modo de inserción (escritura normal).Para ahorrar necesitas
:
w
entoncesEnterPara guardar y dejar de fumar necesita
:
wq
entoncesEnterPara no guardar y forzar la salida, debe
:
q!
entoncesEnterPara aprender más puedes correr
vimtutor
en la línea de comando. Es una lección mediana, bien estructurada.Más allá
i
y Esc: solo puede replicar o superar algunas funciones de MS Wordjkwbd3:%s/nN
.b
te lleva de vuelta una palabra ( Ctrl+ ←)w
te lleva adelante una palabra ( Ctrl+ →)9w
te lleva adelante nueve palabrasdb
elimina la palabra anterior ( Ctrl+ Backspace)d3b
elimina tres palabras anteriores9j
baja 9 líneasornithopter
Enterlo lleva a la siguiente instancia de la palabra "ornithopter", luegon
yN
a la aparición siguiente y anterior de "ornithopter" respectivamente.%s/confounded/dangfangled/
Entersustituye cada "confundido" con "colgado" (comofind and replace all
en MS Word)Cualquiera de estos debe ejecutarse en modo "comando" ( Esc), no en modo insertar (
i
).fuente
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.
fuente
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.
fuente
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.
:)
fuente
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.
fuente
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.
fuente
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/
fuente
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
fuente
nano
que es mucho más fácil de usar que vim, y está casi igualmente extendida.Dos ventajas de vi / vim:
Es muy liviano
se instala en casi todos los sistemas * NIX
fuente
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.
fuente
Aprendí a Vim. No fue demasiado esfuerzo. Ahora me encanta ci "ci (cw V: s / from / to / g
fuente
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.
fuente
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.
fuente
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 ;-)
fuente
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.
fuente
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í.
fuente
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.
fuente
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 ...)
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
Definitivamente vale la pena aprender a Vim a resumir en parte lo que se ha dicho anteriormente, aquí están las razones principales:
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
fuente
No. Aprender vim vale más que el esfuerzo.
fuente