2009-04-05 26 views
25

Esto puede sonar un poco provocativo, pero en realidad es una pregunta real. Siéntete libre de editar si no te gusta el tono.¿Cuál es el punto del plugin viEmu para Visual Studio?

Ahora, por mucho que lo entiendo por mi corta experiencia hace 10 años, es un editor de texto primitivo con una línea editable en la parte inferior de la pantalla creada antes de que se inventaran las barras de desplazamiento, con algunos atajos locas para superar esta limitación

¿Alguien puede explicarme cómo se puede ser más productivo con él que con, digamos, el editor VS.NET normal? Además, ¿por qué alguien querría usar viEmu que supuestamente convierte su VS.NET en una vi antigua?

Estoy dispuesto a intentarlo pero necesito motivación para superar la curva de aprendizaje.

+4

Realmente no sé la respuesta, pero se puede hacer referencia a la dirección http: // xkcd.com/378 /: P – Aziz

+11

vi no es un editor de texto "con una línea editable en la parte inferior". Debes pensar en editores más antiguos como ed: http://en.wikipedia.org/wiki/Ed_(Unix) –

+1

. Si quieres probar las cosas de Vi, te sugiero que comiences con GVim, no con viEmu. Mi compañero de trabajo recientemente comenzó a usar viEmu (nunca antes había usado Vi) y dijo que era mucho más fácil comenzar con GVim y aprender el material Vi fuera del contexto de VS, y solo entonces comenzar a usarlo en Visual Studio. – Herms

Respuesta

92

El viEmu en sí tiene un muy buen artículo que podría ayudar a responder a su pregunta: Why, oh WHY, do those #[email protected]! nutheads use vi?

He pasado los últimos dos meses tratando de enseñarme a usar vim "correctamente" y ahora apenas puede soportar usando otros editores porque parecen poco potentes y torpes. Para un ejemplo al azar, imagine que tiene una línea de código que se parece a esto:

$welcomeMessage = "Welcome to SiteName!"; // shows at the top of homepage 

En un editor normal, ¿cómo cambiar la cadena? Probablemente tendrías que alargar la mano, agarrar el mouse y seleccionarlo con cuidado, o moverías el cursor dentro de la primera comilla, y mantienes presionadas las teclas Mayús y la flecha derecha hasta llegar a la comilla de cierre.

En vim, con mi cursor en cualquier lugar en el medio de las comillas, escribo ci" y se borra todo dentro de las comillas y me pone en el modo de inserción para que pueda escribir el nuevo valor que quiero. Mis manos ni siquiera tuvieron que moverse de mi posición normal de tipeo.

Hay tantas cosas como esta, creo que realmente tiene que pasar un tiempo usando el editor de comprender lo poderoso que es. Al principio es muy lento y difícil de usar, es por eso que mucha gente lo prueba durante un corto tiempo y piensa "esto es tonto, todo es mucho más difícil", pero después de un tiempo empiezas a pensar en términos de los movimientos, todo comienza a ser automático y es mucho, mucho más rápido que usar un editor "normal". Como dije, no puedo volver ahora.

+0

El ejemplo ci "no funcionó en 6.4; luego lo intenté en 7.2 y lo hizo. FYI – gbarry

+12

Estos se llaman objetos de texto y son realmente asombrosos. Una adición bastante reciente, vea: help text-objects. Si desea seleccionar/cambiar/eliminar texto entre delimitadores, entonces hay posibilidades de que haya un objeto de texto que pueda manejarlo – Ben

+2

+1 para objetos de texto. ¡No sabía esto! –

3

Creo que tienen una respuesta larga y aceptable para su pregunta en la pagina principal viEmu:

Otro ejemplo aún más poderoso: tomemos el comando 'ce', que se compone de 'c' y 'mi'. El comando 'c'hange' borra el rango especificado por el siguiente comando de movimiento, y también ingresa el modo de inserción. Es lo mismo que 'd', pero con la diferencia de que entra en modo insertar, en lugar de permanecer en modo normal. La bendición es que el texto que escriba en la próxima sesión de entrada (abreviada) también forma parte del comando. Entonces, si haces 'ceHello>', lo que debes hacer es reemplazar desde el cursor hasta el final de la palabra por 'Hola', y el '.' el comando después funcionará exactamente así: reemplaza hasta el final de la palabra con 'Hola'.

Desde: http://www.viemu.com/a-why-vi-vim.html

que tienen viEmu hace instalado ~ medio año. Pero tengo que decir (tal vez sin fuertes experiencias de Linux) que nunca lo he usado. Demasiado extraño, demasiado lejos, demasiado complejo.

Así que en mi humilde opinión viEmu es un gran desafío técnico & histórico, pero nada más para el 95% de los desarrolladores.

+0

Al leer la página vinculada, estoy aceptando esta respuesta como "la correcta". Me gustó más la respuesta de Chad Birch, pero esta fue la primera respuesta que dio el enlace (ahora obvio). – zvolkov

+1

Pensándolo bien, por el bien de las futuras generaciones de lectores, tengo que revocar mi voz de esta respuesta y dársela a Chad Birch. Ser el primero en enviar un enlace es genial, pero es más importante poder brindar una respuesta útil. – zvolkov

+0

¿Por qué lo (comprar e) instalarlo? –

106

Honestamente, suena como si nunca hubieras visto a alguien usar Vi que sea realmente competente. Cuando normalmente usa Visual Studio, con frecuencia moverá su mano al mouse, haga clic en las opciones, cuadros de diálogo, clases, etc.

Con ViEmu su mano nunca deja el teclado. Está compilando, cambiando archivos, resaltando grupos de texto, arreglando sangrías, realizando movimientos complejos en su código y ejecutando búsquedas de expresiones regulares en segundos. Para las personas que son mecanógrafos rápidos, le permite alcanzar una velocidad para tareas que de otro modo no podría realizar.

Muchas personas lo contrarrestan diciendo cosas como: "La mayor parte de mi tiempo de desarrollo lo paso pensando. La velocidad extra que obtengo al usar herramientas como estas es insignificante".

Eso no es un argumento en mi opinión. Es cierto, para la mayoría de las grandes tareas de programación, pasas mucho más tiempo planificando y pensando que en realidad lo haces con el código. Pero eso no significa significa que poder expresarse a través de su IDE 2 veces más rápido no tiene un impacto en su productividad como programador.

+8

Ojalá pudiera duplicar su voto. Encuentro que ViEmu es una herramienta invaluable – JaredPar

+1

¿Pero _how_ lo hace posible? ¿Cuál es la salsa secreta de la que carecen otros editores? – zvolkov

+12

modo no insertado. La mayoría de los editores son solo el modo Insertar, pero Vi tiene muchos otros modos, que interpretan las claves de manera diferente. Esto le permite moverse y modificar las cosas mucho más rápido (por ejemplo: en lugar de simplemente las teclas de flecha para moverse obtiene una TONELADA de comandos de navegación). – Herms

6

Se equivoca acerca de "una línea editable en la parte inferior de la pantalla". Todo el texto en la ventana es editable. Y se desplaza (todas las versiones) y, en el caso de gvim, tiene barras de desplazamiento.

Quizás lo puso inadvertidamente en "modo ex". Esto se hace fácilmente y puede ser confuso.

1

que no tienen experiencia con VS.Net pero supongo que tiene las mismas características que cualquier otro IDE tiene.

He encontrado que el aprendizaje de los todos los comandos de teclado del editor en mi IDE era un reemplazo suficiente para Vi. Cosas como renombrar, sangrar, formatear, mover líneas y ese tipo de cosas.

así que supongo que la mayor victoria sería para alguien que ya sabe Vi a ser productivos sin tener que aprender VS.Net.

Pero, de nuevo, Vi tiene algunas características verdaderamente esotéricos, pero de gran alcance que probablemente no pueden ser igualadas por que el editor estándar IDE. página

0

De hecho, utilizo VS solo para la depuración en estos días. Codificar con vim (vim real, no viemu) es solo una mejor experiencia.

Ahora, no voy a afirmar que usar uno sobre otro hace una diferencia en la productividad; después de todo, gasto la mayor parte de mi tiempo tratando de resolver cómo resolver un problema, ingresar el código es la parte fácil.

+0

Tiendo a preferir un IDE con un plugin de vim solo a Vim. Vim pierde muchas de las funciones adicionales del IDE (autocompletado con reconocimiento de idioma, etc.). El complemento Netbeans + jVi es mucho mejor que solo Netbeans o solo Vim. Aunque el Vim normal funciona muy bien para idiomas sin ningún IDE bueno. – Herms

1

Creo que realmente debería darle una oportunidad a Vim.
Si probé Vi hace diez años, puedo entender que no lo haya apreciado. No es realmente fácil de usar a primera vista. En realidad, su verdadero poder se revela cuando comienza a sentirse cómodo con los movimientos y comienza a hacerlo suyo con personalización. Una vez que Vim le resulte familiar, puede comprender por qué merece ser aprendida.

4

Otra respuesta me hizo pensar que viendo un poco de edición experta usando vim sería bastante revelador de modo Desenterré este video que muestra los movimientos básicos y más adelantado mientras que la codificación. Esta persona podría incluso ser un poco eficiente usando algunas marcas, etc. pero da una idea.

http://www.youtube.com/watch?v=FcpQ7koECgk&feature=related

4

Si necesitas inspiración o quiere ver a alguien que realmente sabe lo que están haciendo con Vim, echa un vistazo a Gary Bernhardt cadena Calculadora Kata En Python, mirarlo ir! http://vimeo.com/8569257

21

También he tenido problemas para entender por qué las personas eligen vim como su editor, aunque lo estaba usando de vez en cuando, hasta que finalmente lo "conseguí". Creo que la mayoría de las explicaciones de "¿por qué?" falla, porque no muestran un par de puntos cruciales. Para explicar esos puntos, primero debe entender que en vim está manipulando texto principalmente en modo comando. Es decir, las pulsaciones de teclas son comandos y, por lo general, no insertan texto, a menos que esos comandos (como a ppend, i nsert, c colgado) cambien al modo de inserción. Esto le permite navegar y editar su texto fácilmente sin tener que tocar el mouse o alejar las manos de la "posición de edición".

Ahora los puntos cruciales son: comandos

  • Vim se dividen en sustantivos, verbos y modificadores.
  • La edición se realiza combinándolos.

Y esto es lo que da el poder vim. Para ilustrar el punto, aquí están algunos comandos más utilizados:

  • sustantivos: W ord, s entence, b bloqueo, citas y tirantes.
  • Verbos: c cambio, i nsert, v isual, d elete
  • modificadores: i Nside, un redonda, t enferma

Y para ilustrar cómo puedes mezclarlos:

  • ¿Quieres cambiar una palabra? cw
  • Lo mismo, pero el cursor en el medio de la palabra? cunw
  • Cambio de texto entre comillas? ci", también cambian las citas? cun"
  • cuerpo de la función Borrar?di{
  • Eliminar arriba hasta primera coma? dt,
  • Eliminar hasta el segundo coma? dt,
  • Saltar a primera coma? t,
  • Seleccionar palabra? viw

Observe también cómo todos los comandos bien se traducen en lenguaje natural:

  • d elete w ord
  • c ambiar i nside {

En vim si aprende un nuevo verbo, sustantivo o modificador, puede mezclarse fácilmente y combinar con lo que ya sabe. Entonces, básicamente, aprender solo una cosa, aprende a hacer muchas cosas diferentes.

Otra gran cosa es que vim recuerda qué comandos ha usado, y puede repetir la secuencia simplemente presionando .. Para esta publicación he tenido que rodear muchas letras con < kbd> tag. Pero lo hice solo una vez, y luego revisé cada letra y presioné ..

Y eso es básicamente lo que "necesitas entender" para comprender el poder de vim y convertirte en un usuario avanzado durante la noche.

P.S. si no te gusta vim porque está basado en la consola y quieres un editor de texto moderno, entonces sugiero que busques en el editor Sublime Text, que es un gran editor y también es compatible con el modo vim.

P.S.2. También recomiendo para mapear Esc clave a j j y kk, que hace las cosas mucho más fáciles.

+0

por favor, elabore sobre el mapeo de Esc a jj/kk? –

+0

@DrewNoakes cuando ingresa al modo de inserción (es decir, cuando al presionar teclas en realidad inserta caracteres en el editor) normalmente sale de nuevo al modo de comando Ssing tecla Esc. Esto es un poco engorroso, por lo que muchos usuarios de vim mapean jj y/o kk para salir rápidamente del modo inserción, sin levantar las manos de la posición de tipeo. Puede hacer esto agregando 'inoremap jj ' a su archivo .vimrc (o de alguna otra manera para el editor dado). Esto hará que si presiona jj sin una pausa entre ellos, vim saldrá al modo de comando. Si tiene un par de segundos entre ambas j, entonces vim insertará la cadena "jj". – Smilediver

2

Básicamente con Vi (o ViM) se vuelve más rápido porque no necesita tocar el mouse y se mejora el mapa de teclas (esto representa el costo de la curva de aprendizaje pero vale la pena el esfuerzo) para hacer cualquier manipulación de texto en un fácil una vez que los fundamentos se aprenden.

Top 10 things Vi user need to know about Vim

Cuestiones relacionadas