Sé un poco acerca de los editores de texto * NIX (actualmente migrando de nano
a vim
), y después de mirar un poco en Unix & Linux SE, noté que se usa vi
en lugar de «vim» en un buen número de preguntas. Sé que «vim» significa «Vi IMproved» y, con eso en mente, me pregunto por qué alguien prefiere usar vi en lugar de vim. ¿Vi tiene alguna ventaja significativa sobre vim?
Editar: Creo que mi pregunta está siendo mal interpretada. Sé que vim es, en su mayor parte, significativamente más potente y con funciones completas que vi. Lo que quiero saber es si hay casos posibles en los que vi tenga una ventaja sobre vim, como menos uso de memoria, prevalencia en sistemas * nix, etc.
Comentarios
Respuesta
vi
es (también) un editor estándar POSIX . Hay muchas implementaciones y vim
es probablemente la más popular.
Aunque muchos sistemas operativos tradicionales compatibles 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 los cosméticos como el color de sintaxis, sino 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 BSD original. El código puede ser muy frustrante. Lo contrario también es cierto.
Esto es bastante similar al problema que ocurre con los scripts que utilizan bashisms que no son POSIX frente a implementaciones de shell más ortodoxas como dash
o ksh
.
Respuesta
No vi no tiene cualquier ventaja significativa sobre vim es al revés. Vim tiene más ventajas que Vi. Puede estar interesado en: ¿Por qué, oh POR QUÉ, hacer esos #? @! ¿Los locos usan vi?
En la edición también se lee: ¿Vale la pena aprender VIM?
Comentarios
- Sí. No ‘ no uso ningún IDE porque los editores que te obligan a usar no son ‘ t Vim.
- @Keith Utilizo tanto Xcode como Eclipse y ‘ todavía puedo editar solo con vi.
- @Keith SlickEdit tiene una excelente emulación de Vim, e IDEA ‘ s se acerca. Además, Visual Studio tiene ViEmu.
- IntellIJ también tiene un buen complemento vim que anula el comportamiento del editor estándar ‘.
Respuesta
Después de pasar una gran parte de mi vida (sin incluir la infancia) editando cómodamente con Vim, pasé alrededor de un mes usando únicamente 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, siempre que tenía que sustituir algún texto o realizar una operación similar en un grupo grande de archivos, simplemente abría los archivos en Vim y ejecutaba un comando :bufdo
, y cada vez que tenía que sangrar o formatear algunos archivos, los abría en Vim y usaba los comandos de Vim «s =
y gw
Yo era dependiente de Vim.Después de darme cuenta de que vi no tenía estos comandos, me vi obligado a realizar transformaciones de texto masivas con sed
y aprendí mucho sobre otros programas como awk
y indent
. Aunque volví a usar Vim al final, el conocimiento que adquirí al usar un editor con menos funciones 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. Siempre que estoy trabajando en un nuevo sistema o en 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 diferencia de rendimiento notable entre Vim y vi, por lo que suelo usar vi en la tableta.
Comentarios
- Encuentro que este es un problema común en TI: las herramientas que nos ayudan también pueden ocultar cosas que ‘ estaríamos mejor aprendiendo.
- En realidad, manejar La edición de archivos en el lugar en muchos archivos puede ‘ t realizarse de manera portátil con Awk o Sed ya sea . (El
-i
activar 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
Respuesta
Me costaría mucho vivir sin vim pero no puedo soportarlo . Sin embargo, aprender lo primero te dejará al menos una idea de cómo lidiar con lo último cuando eso sea todo lo que esté disponible.
La interfaz vim por defecto es bastante cercana a vi. «Estoy trabajando en un sistema con vim, lo primero que hago es agregar estas cosas a ~/.vimrc
:
syntax enable set nocp set wildmenu
«Hay un montón de otras cosas que prefiero, ahora el rap y la numeración, etc.» pero no importa. «Syntax enable» simplemente activa el resaltado de sintaxis básico (algo más robusto: filetype plugin on
es fundamental también); «nocp» desactiva la compatibilidad con vi y es esto lo que comienza a distinguir vim de los antiguos vi (p. ej. , habilita showmode
lo que hace que la experiencia sea algo más humana, ya que ahora tiene alguna pista sobre si está al mando o en el modo ~ INSERT ~). «wildmenu» solo le da una 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 le parezca. No son fáciles de aprender, pero una vez que los conoces, 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 de teclas 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 toma ese camino, lol, mire los complementos de autocompletado y taglist. Y cuidado con el lado oscuro.
Comentarios
- Siempre agrego
set mouse=a
también. - Con respecto a su programación comentario, puede encontrar eclim interesante …
- @ire_and_curses: haven ‘ t lo intenté. Eclipse y vim monitorean los archivos de origen y permiten que se actualicen externamente, y pasar de un escritorio a otro es pasar de un escritorio a otro. Aunque parece una buena idea.
- Aunque no ‘ creo que esta respuesta debería ser la respuesta elegida (ya que ‘ s parcial), ‘ es exactamente el tipo de perspectiva que es útil para comprender las diferencias. Gracias por tomar una posición.
Respuesta
La ventaja es que vi generalmente preinstalado en UNIX empresarial como AIX o Solaris. Además, no se puede acceder a vim en los medios de instalación.
Responder
Esto es extraído de Vim Koans :
Master Wq y el maestro Unix
Un viejo maestro Unix llegó a Master Wq. “Estoy preocupado, Wq. Enseñas el camino de Vim. vi es santo pero Vim no lo es; su código se expande, sus características aglutinan la memoria; sus binarios son vastos, su comportamiento inconsistente. Esta no es la forma de Unix. Temo que engañe a sus estudiantes. ¿Qué se puede hacer? ”
Master Wq asintió. «Tienes razón», dijo. “Vim está roto. Arreglemoslo. ¿Empezamos? ”
El viejo maestro de Unix estuvo de acuerdo y abrió un shell. Escribió:
$ vi vim.c
Comenzó a codificar. El Maestro Wq observó durante un rato y luego le preguntó: “¿Qué implementación de vi estás usando? Nvi? ¿Empuje? ¿Elvis? ”
“ No lo 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.
Comentarios
- jaja … es gracioso para mí …. profundo pero divertido.Gracias por compartir.
Respuesta
Como ya han mencionado las respuestas anteriores, vi viene con casi todos los sistemas UNIX por ahí.
Solo quería agregar un ejemplo. Arch Linux es una distribución particularmente popular y ligera que ni el instalador ni la distribución base vienen con vim por defecto, sin embargo, ambas vienen con vi.
Esto no es una ventaja para vi per se , porque 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 comprender la diferencia y que vi es más ubicuo y liviano que vim, le da algunas ventajas de nicho.
Además, para ser más completo, nadie ha mencionado explícitamente que vi es un precursor directo de vim. Vim fue diseñado específicamente para ser todo que vi era, y más.
Entonces, de una manera muy directa, vim es superior a vi, porque fue diseñado para ser .
Respuesta
La única razón para usar vi en lugar de vim es cuando no tiene otra opción.
Hay muchas, muchas razones por las que vim se encuentra para r «vi mejorado»!
Tomando prestado de una publicación relacionada, respondí: –
- Múltiples ventanas: horizontal, vertical & pestañas.
- Resaltado visual.
- Ayuda en línea a través del comando: help.
- Grabe macros en un registro que luego pueda ejecutar.
- Deshacer (y rehacer) varias veces, en lugar de cambiar el loco deshacer de vi.
- Historial de línea de comandos, historial de búsqueda.
- Un lenguaje completo incrustado junto con una gran cantidad de funciones disponibles, por ejemplo, getcwd ()
- Coincidencia de patrones enormemente expandida.
- Completar palabras mediante ctrl-P & ctrl-N.
- Un navegador de archivos incorporado (un poco torpe, pero puede ser útil).
- La tecla ESC en realidad cierra los comandos de los que estaba tratando, bueno, escapar en lugar de ejecutarlos (locamente) como lo hace vi.
- Capacidad para ejecutar comandos en todos los búferes, argumentos o ventanas a través de bufdo, argdo & windo.
Comentarios
- Probablemente podrías haber traído las » muchas, muchas » razones que mencionaste en unix.stackexchange.com/a/425597/85039 responde aquí. Eso ‘ haría que esta respuesta fuera un poco mejor; de lo contrario, se lee más como un comentario que como una respuesta real
- Punto tomado. Respuesta actualizada, tomando prestada de una respuesta relacionada que hice ayer.
Respuesta
He notado que solo elige Vi
sobre VIM
cuando Estoy copiando y pegando un documento de texto o un archivo de configuración que he usado con el comando cat
. Esto se debe a que cuando intento ctrl-c
y luego ctrl-v
en el VIM
documento abierto, obliga a todas las líneas a tener un comentario delante de ellas. Entonces, cuando uso Vi
para ctrl-v
o paste
en Vi
documento abierto, pega exactamente lo que he copiado. Aparte de eso, uso VIM
todo el día.
¡Que lo disfrutes!
Comentarios
- Pruebe
:set paste
- establezca pastetoggle = < F2 > en .vimrc ( vim.wikia.com/wiki/Toggle_auto-indenting_for_code_paste)
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
en la instalación predeterminada.vi
usando las especificaciones POSIX paravi
. De esa manera, tendrá conocimientos de portátiles y de extensiones de Vim.