Sé un poco sobre * NIX editores de texto (actualmente migrando de nano
a vim
), y, después de mirar un poco en el SE de Unix y Linux, he notado que vi
se usa en lugar de 'vim' en una buena cantidad de preguntas. Sé que 'vim' significa 'Vi IMproved' y, con eso en mente, me pregunto por qué alguien preferiría usar vi en lugar de vim. ¿Vi tiene alguna ventaja significativa sobre vim?
Editar: creo que mi pregunta se está malinterpretando. Sé que vim es, en su mayor parte, significativamente más potente y completo que Vi. Lo que quiero saber es si hay posibles casos en los que vi tenga una ventaja sobre vim, como menos uso de memoria, prevalencia en sistemas * nix, etc.
vi
es que puede esperar que esté en todos los sistemas compatibles con POSIX.vi
y novim
... Ubuntu es una de las distribuciones más fáciles de usar por cierto ;-)vim
.vi
es solo un enlace simbólico que eventualmente apunta avim
la instalación predeterminada.vi
usar las especificaciones POSIX paravi
. De esa manera, usted tiene conocimiento portátil , así como conocer las extensiones de Vim.Respuestas:
vi
es (también) un editor estándar POSIX . Hay muchas implementaciones yvim
es probable que sea la más popular al menos en Linux.Si bien muchos sistemas operativos tradicionales que cumplen con Unix proporcionan
vi
implementaciones muy cercanas al estándar,vim
ha agregado muchas características adicionales que lo convierten en un arma de doble filo.Por supuesto, estas extensiones generalmente están diseñadas para facilitar el proceso de edición y proporcionar características y funcionalidades útiles. Sin embargo, una vez que esté acostumbrado a algunos de ellos (no a los cosméticos, como la coloración sintáctica, sino a los que cambian el comportamiento del editor), puede olvidar fácilmente que son específicos; y usar una implementación diferente, incluidas las basadas en el código BSD original, puede ser muy frustrante. Lo opuesto también es cierto.
Esto es bastante similar al problema que ocurre con los scripts que utilizan bashismos no POSIX frente a implementaciones de shell más ortodoxas como
dash
oksh
.fuente
Ningún vi no tiene ninguna ventaja significativa sobre vim, sino que es al revés. Vim tiene más ventajas que Vi. Te puede interesar: ¿Por qué, oh POR QUÉ, esos #? @! los tontos usan vi?
Editar también lea: ¿Vale la pena aprender VIM?
fuente
Después de pasar una gran parte de mi vida (sin incluir la infancia) editando cómodamente con Vim, pasé aproximadamente un mes solo usando vi. Al hacerlo, me di cuenta de que había dependido de Vim para todas mis necesidades de modificación de texto. Antes de mi viaje con vi, cada vez que tenía que sustituir algún texto o realizar una operación similar en un gran grupo de archivos, simplemente abría los archivos en Vim y ejecutaba un
:bufdo
comando, y cada vez que tenía que sangrar o formatear algunos archivos, Los abriría en Vim y usaría Vim=
y susgw
comandos. Yo dependía de Vim. Después de darme cuenta de que vi no tenía estos comandos, me vi obligado a realizar transformaciones de texto masivo consed
y aprendí mucho sobre otros programas comoawk
yindent
. Aunque finalmente volví a usar Vim, el conocimiento que obtuve al usar un editor menos destacado fue sustancial y ha demostrado ser extremadamente útil. Además de aprender sobre herramientas fuera de un editor de texto, también me familiaricé mejor con vi. Cada vez que estoy trabajando en un nuevo sistema o un servidor que no tiene Vim, me siento mucho más cómodo usando vi que antes de mi excursión de un mes.Además, el mes pasado instalé Linux en una tableta WM8650 barata y descubrí que hay una notable diferencia de rendimiento entre Vim y vi, por lo que tiendo a usar vi en la tableta.
fuente
-i
interruptor en ambos es una extensión GNU). Pero puede usarlos de forma portátil con algo comofor f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done
Me resultaría difícil vivir sin vim, pero no soporto vi . Sin embargo, aprender lo primero al menos te dejará con una idea de cómo lidiar con lo último cuando eso es todo lo que está disponible.
La interfaz vim por defecto es bastante parecida a vi. Si estoy trabajando en un sistema con vim, lo primero que hago es agregar esto a
~/.vimrc
:Hay un montón de otras cosas que prefiero, ahora, numeración, etc., pero no importa. "habilitar sintaxis" solo activa el resaltado de sintaxis básica (algo más robusto: también
filetype plugin on
es fundamental); "nocp" desactiva la compatibilidad de vi y es esto lo que comienza a distinguir vim de vuestro viejo vi (por ejemplo, permiteshowmode
que toda la experiencia sea algo más humana, ya que ahora tienes alguna pista sobre si estás al mando o si INSERTAR) modo). "wildmenu" simplemente le ofrece un menú de finalización horizontal al hacer algunas cosas, lo que también facilita la vida.Las funciones de edición de texto de vim son insuperables, aparte de emacs, nunca he visto ni oído hablar de un software que se acerque. No son fáciles de aprender, pero una vez que los conoce, son mucho más rápidos de usar que los menús del mouse y mucho más dinámicos que las simples alternativas de macro clave en las interfaces basadas en el menú del mouse. Para la programación, a veces uso vim junto con un IDE como Eclipse, pero hago la mayor parte del trabajo en vim.
Si tomas ese camino, jajaja, mira los complementos de autocompletado y taglist. Y cuidado con el lado oscuro.
fuente
set mouse=a
también.La ventaja es que vi generalmente está preinstalado en UNIX empresarial como AIX o Solaris. Además vim no es accesible en los medios de instalación.
fuente
Me he dado cuenta de que sólo se elija
Vi
másVIM
cuando estoy copiando y pegando un documento de texto o un archivo de configuración que he utilizadocat
comandos. Esto se debe a que cuando intentoctrl-c
accederctrl-v
alVIM
documento abierto, obliga a todas las líneas a tener un comentario enfrente de ellas. Entonces, cuando usoVi
enctrl-v
opaste
en elVi
documento abierto, pega exactamente lo que copié. Aparte de eso, usoVIM
todo el día.¡Disfrutar!
fuente
:set paste
Como las respuestas anteriores ya han mencionado, vi viene con casi todos los sistemas UNIX que existen.
Solo quería agregar un ejemplo. Arch Linux es una distribución particularmente popular y liviana que ni el instalador ni la distribución base viene con vim por defecto, sin embargo, ambos vienen con vi.
Esto no es una ventaja para vi per se , ya que simplemente puede instalar vim manualmente, y hay poco que necesite lograr en la instalación que requiera un editor de texto, y nada donde vim sea superior a vi para el propósito previsto. Pero entender la diferencia y que vi es más ubicuo y liviano que vim le da algunas ventajas de nicho.
Además, para ser exhaustivo, nadie ha mencionado explícitamente que vi es un precursor directo de vim. Vim fue diseñado específicamente para ser todo lo que era vi, y más.
Entonces, de una manera muy directa, vim es superior a vi, porque fue diseñado para serlo .
fuente
La única razón para usar vi sobre vim es cuando no tienes otra opción.
¡Hay muchas, muchas razones por las cuales vim significa "vi mejorado"!
Tomando prestado de una publicación relacionada, respondí:
fuente
Este es un extracto de Vim Koans :
Master Wq y el maestro Unix
Un viejo maestro de Unix llegó al Maestro Wq. “Estoy preocupado, Wq. Enseñas el camino de Vim. vi es santo pero Vim no lo es; su código se extiende, sus características aglomeran la memoria; Sus binarios son vastos, su comportamiento es inconsistente. Este no es el camino de Unix. Me temo que engañas a tus alumnos. ¿Qué se puede hacer?"
El maestro Wq asintió. "Tienes razón", dijo. “Vim está roto. Vamos a arreglarlo ¿Deberíamos empezar?"
El viejo maestro de Unix estuvo de acuerdo y abrió una concha. Él tecleó:
Él comenzó a codificar. El Maestro Wq observó por un momento y luego le preguntó: “¿Qué implementación de vi estás usando? Nvi? ¿Empuje? ¿Elvis?
"No sé", dijo el maestro de Unix. "No importa."
El maestro Wq asintió. El maestro de Unix se quedó atónito por un momento y cerró su documento sin guardar.
fuente