Hoy, decidí probar vi en lugar de Vim; Quería ver qué tan diferente es.
No noté muchas diferencias en absoluto. Lo más importante que noté fue que vi no decía -- INSERT --
cuando entré en el modo de inserción y hubo algunas diferencias menores en la interfaz.
Esto me hizo preguntarme, ¿cuáles son las mayores diferencias entre vi y Vim?
Comentarios
- Obviamente, no ‘ t está utilizando muchas funciones avanzadas de vim. selección de bloque, búsqueda de palabra debajo del cursor, número de incremento debajo del cursor, resaltado de sintaxis, etc.
- Publicación relacionada – ¿Cuál es la diferencia entre Vi y Vim?
- Hay algunas ventajas obvias, como la compatibilidad con claves extendidas. Las teclas de flecha funcionan en lugar de hjkl.
Responder
En realidad, hay un comando de ayuda en Vim para decirle sobre las diferencias: :help vi_diff
(observe el guión bajo: :help vi_diff
)
Del sitio de Vim , los más grandes son:
deshacer ilimitado
Puede hacer xxxx y deshacer cada una de las cuatro eliminaciones. ¿Cuándo fue ¿La última vez que escribiste » jjjj » y luego te enteraste de que la tecla de bloqueo de mayúsculas estaba activada? Por accidente, uniste cinco líneas y Vi deshaga solo el último comando. En Vim puede deshacer los cuatro comandos » J » y recuperar el texto original.
portabilidad
Vi solo está disponible en Unix. Vim funciona en MS-Windows, Maci ntosh, Amiga, OS / 2, VMS, QNX y otros sistemas. Y también en todos los sistemas Unix.
resaltado de sintaxis
Vim puede ser programado para resaltar partes del búfer en diferentes colores o estilos, según el tipo de archivo que se está editando. Hay cientos de conjuntos de reglas de resaltado de sintaxis incluidos con Vim.
GUI
Vim funciona bien en una consola, pero puede ejecutarse de forma nativa en muchas GUI, incluidas X Windows, Mac OS y Microsoft Windows. Utiliza widgets GUI nativos para desplazarse, dividir búferes y menús. También puede comunicarse con el portapapeles.
Comentarios
Respuesta
Vim tiene muchas características que Vi no tiene, incluso características que no son obviamente características «avanzadas».
En la práctica, esto significa que si está acostumbrado a Vi, probablemente encontrará muy pocas diferencias si comienza a usar Vim (o algún otro clon de Vi), pero si está acostumbrado a Vim y si sus «reflejos» incluyen características como resaltado en modo visual, cualquier acción clave que comience con «g» o «z», cualquier acción de texto con «i» o «a» [p. ej. «daw» para eliminar una palabra debajo del cursor], navegando con las teclas de flecha en el modo de inserción, etc., encontrará que esas no funcionan en Vi.
También está la pregunta de qué es exactamente que estaba usando cuando dice que «probó Vi». En muchos sistemas, «vi» realmente ejecuta Vim, en un modo en el que se aplican algunas de estas diferencias (el modo de presentación predeterminado, como ha observado, las teclas de flecha no funcionan en el modo de inserción) y otras no (el modo visual y las teclas g / z funcionan ), y algunas funciones dependen de una opción en tiempo de compilación que a veces está deshabilitada en el «Vim diminuto» que se usa para esto (los objetos de texto, como «aw» una palabra, son uno de estos). No obtendrá estos si ejecuta el Vi real , o si «vi» es algún otro clon con menos o diferentes características que Vim, como nvi o VILE.
Y, en el oscuro Por otro lado, mientras que «Vim diminuto en modo Vi» obviamente no «tiene ninguna característica que no tenga un Vim completo, hay algunas características del Vi original genuino que vim carece. Estas están documentadas en :help vi-differences
.
Comentarios
- Yo ‘ apuesto mucho a que OP en realidad tiene un » tiny vim » vi.
- usted dice que en muchos sistemas el v El comando i realmente ejecuta vim. Entonces, ¿cómo puedo saber si realmente estoy ejecutando vi o vim?
- @firstpostcommenter Bueno, ‘ básicamente todavía se verá como vim – el ~ en el a la izquierda de la pantalla será de color azul, y el texto del anuncio de la versión aún puede aparecer en el centro de la pantalla si lo inicia por sí mismo sin especificar un archivo.Si ‘ está muy preocupado por el editor que ejecuta, también hay otros clones de vi que podrían instalarse en su lugar, y el » original vi » es muy poco común en distribuciones linux / bsd.
Respuesta
La mayoría de las comparaciones dan más funcionalidad a Vim que a vi, pero hay una excepción. Había un modo «abierto» en vi, y Vim realmente no tiene este modo.
El modo abierto es un modo de una sola línea que se usaba en el pasado con terminales que no tenían dispositivos electrónicos. pantallas, es decir, teletipos, impresoras de letras y similares, y también con pantallas donde el cursor permanece solo en la parte inferior.
Sé que hay documentación que dice que Vim simula el modo abierto, pero mi experiencia es que no es así. Porque lo he visto usar con vi con mis propios ojos, y nunca he visto a Vim hacerlo. Parece que Vim solo usa el comando open
simplemente para abrir y editar un archivo en modo visual. Creo que la documentación oficial de Vim indica que no admite el modo abierto.
Comentarios
- I tener ex-vi.sourceforge.net instalado, que es un puerto del Vi original. ¿Cómo inicio este modo abierto? La página de manual lo menciona cuando se habla de
^R
, pero no brinda ninguna otra ayuda.:open some/file
devuelveopen: No such command from open/visual
. - @muru
Q
para ingresar ex mode, luegoopen
.z
para mostrar el contexto de la línea actual una vez que ‘ esté en modo abierto. Para retroceder,Q
luegovi
.
Responder
Las preguntas frecuentes de Vim tienen una lista bien formateada: https://vimhelp.org/vim_faq.txt.html#faq-1.4
Extracto de las preguntas frecuentes:
- Deshacer multinivel
- Pestañas, varias ventanas y búferes
- Modo de inserción flexible (puede usar teclas de flecha en modo Insertar)
- Macros
- Modo visual (seleccionar visualmente secciones de texto)
- Operadores de bloque
- Sistema de ayuda en línea
- Edición e historial de la línea de comandos
- Finalización de la línea de comandos (finalización de tabulación)
- Desplazamiento horizontal (líneas largas)
- Mejoras de internacionalización y Unicode .
Respuesta
Creo que es muy difícil hacer la comparación, debido a los cambios en vi que sucedió con el tiempo.
Cuando estaba en la universidad, usé vi simple-vanilla en una terminal tonta (y también en un emulador de terminal en una Mac) que se conectaba a mainframes usando System V. Ni siquiera puedes encontrar que más.
Pero ni siquiera estoy seguro de que sea cierto vi. En esa época se hicieron muchos clones y puertos porque vi no era de código abierto en ese momento. Y cuando los proveedores hicieron clones, agregaron características que no estaban en vi. La historia es algo complicada. Puede leerlo en Wikipedia y en otros lugares.
Entonces, si no estaba usando ciertos proveedores / hardware, no estaba usando vi, sino algo como vi.
Pero sí recuerdo que vi (o el clon que estaba usando) siendo muy minimalista en su interfaz (sin colores, sin etiquetas INSERT, sin múltiples deshacer, etc.) pero poderoso en lo que realmente podía lograr. Muy práctico.