Diferencias entre Emacs y Vim


Sin entrar en una discusión religiosa sobre por qué uno es mejor que el otro, ¿cuáles son las diferencias prácticas entre Emacs y Vim? Estoy buscando aprender uno u otro, pero me doy cuenta de que la curva de aprendizaje para cada uno es alta y no puedo decidir. Nunca he usado un editor de este tipo (siempre he usado IDEs), por lo que cualquier cosa que ayude a un novato es una ventaja.


Antes de que comience una guerra de llamas: No estoy preguntando cuál es mejor, estoy preguntando las diferencias entre los dos. Me quisiera una comparación objetiva.

Author: Sasha Chedygov, 2009-09-16

28 answers

(el texto a continuación es mi opinión, no debe tomarse como un hecho o un insulto)

Con Emacs se espera que lo tengas abierto 24/7 y vivo dentro del programa, casi todo lo que hagas se puede hacer desde allí. Escribes tus propias extensiones, las usas para tomar notas, organización, juegos, programación, acceso a shell, acceso a archivos, escuchar música, navegar por la web. Toma semanas y semanas hasta que usted será feliz con él y entonces usted aprenderá nuevas cosas todo el tiempo. Tú serás molesto cuando no tiene acceso a él y cambia constantemente su configuración. Usted no será capaz de utilizar otras personas versiones de emacs fácilmente y no solo se instalará. Usa Lisp, lo cual es genial. Puedes convertirlo en lo que quieras que sea. (cualquier cosa, en absoluto)

Con Vim, casi siempre está preinstalado. Es rápido. Abres un archivo, haces una edición rápida y luego sales. Puede trabajar con la configuración básica si está en la máquina de otra persona. No es tan editable, pero sigue siendo mucho mejor que la mayoría de los editores de texto. Reconoce que la mayoría de las veces está leyendo/editando sin escribir y hace que esa parte sea más rápida. No sufres de emacs pinkie. No es tan exasperante. Es más fácil de aprender.

A pesar de que uso Emacs todo el día todos los días (y me encanta) a menos que tenga la intención de pasar mucho tiempo en el programa que elija, elegiría vim

 414
Author: James Brooks,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-15 13:05:29

Vim no es un shell. Y no se comunica bien con subprocesos. Esto es casi por diseño, mientras que en Emacs, estos elementos se incluyen por diseño. Esto significa que algunas cosas, como incrustar un depurador o un intérprete (produciendo una especie de IDE), son difíciles en Vim.

Además, los atajos de Emacs se acceden principalmente a través de modificadores, y obviamente la interfaz de Vim es famosamente modal, dando acceso a una absurda cantidad de teclas directas para la manipulación.

Emacs solía ser el único editor de los dos que era programable, y aunque Vim tiene muchos niveles extraños en su programabilidad, con la adición de enlaces de Python y Ruby (y más, lo olvido), Vim también es programable en la mayoría de las formas que te gustaría.

Uso Vim, y estoy bastante contento con él.

 116
Author: Svend,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-15 13:04:38

Vim:

  • mejor como un editor simple (se requieren menos teclas para tareas simples)
  • comunidad de scripting más activa-lenguaje interno: vimscript
  • un repositorio central de scripts, plugins, esquemas de color,...
  • también extensible en python, ruby
  • puede hacerse portable (emacs tiene algunos problemas con eso)

Emacs:

  • no modal por defecto (la mayoría de los editores de hoy han tomado este enfoque). Aunque hay mal-modo que emula el comportamiento vim.
  • un lenguaje más potente para extenderlo (elisp es un lenguaje completo, y en emacs prácticamente puedes redefinir todo; mientras que en vim no puedes redefinir las funciones de compilación del editor. En el lado negativo, vimscript es relativamente similar a los lenguajes dinámicos de hoy en día, mientras que elisp no se parece a casi nada)
  • más extensible
  • excelente soporte para herramientas GNU (el grupo de ellos)

Personalmente, prefiero vim - es pequeño, hace lo que se supone que debe hacer, y cuando deseo un IDE completo abro VS. el enfoque de Emacs de ser un editor que quiere ser un IDE (o debería decir, un sistema operativo), pero no es del todo, es IMHO, anticuado. En los viejos tiempos tener un cliente de correo electrónico, cliente ftp, tetris,... todo lo que hay en un paquete (emacs) tenía algún sentido ... hoy en día, ya no lo hace.

Ambos son sin embargo un tema de discusiones religiosas entre el programador y los usuarios de la comunidad superusuario, y en ese sentido, ambos son excelentes para iniciar flame wars si se ponen en contacto (en la misma oración / pregunta).

 95
Author: Rook,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-26 23:16:53

Si estás buscando un análisis objetivo de ambos editores, mira sus orígenes y la filosofía detrás de sus respectivos diseños. Piense, cuál le conviene mejor y aprenderlo (y aprenderlo y aprenderlo, porque lleva tiempo antes de ser para descubrir su verdadera utilidad en comparación con cualquier IDE). Una introducción a la edición de pantalla con Vi fue escrita por Bill Joy y Mark Horton y explica por qué eligió el diseño modal y la justificación para varios golpes de tecla (it me ayuda a recordar que CTRL - W+ W (cambiará a siguiente Window y lo mismo para CTRL W + CTRL W, en caso de que mantenga presionada la tecla CTRL durante un período más largo.

Aquí hay un enlace a Emacs timeline y tiene la referencia a Multics Emacs paper. Aquí está el documento de RMS sobre Emacs , donde veo que el énfasis está en un editor de texto programable (incluso en 1981 y antes).

No he leído los documentos de emacs, pero he leído el vi documento de Bill Joy un par de tiempo. Ambos son viejos, pero aún así obtendrá la filosofía y puede optar por utilizar la herramienta actual (vim 7.x o emacs 25?)

Edit: Olvidé mencionar que se necesita paciencia e imaginación para leer ambos documentos, ya que te lleva atrás en el tiempo mientras lo lees. Pero vale la pena.

 45
Author: Senthil Kumaran,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-03-09 14:50:31
  1. Vim siempre fue más rápido de arrancar que Emacs. Estoy diciendo que en cualquier máquina, las instalaciones listas para usar de Vim se iniciarán más rápido que las instalaciones listas para usar de Emacs. Y tiendo a pensar que después de una cantidad moderada de personalización de cualquiera de los dos, Vim todavía se iniciará más rápido que Emacs.

  2. Después de eso, la otra diferencia práctica fueron los modos de Emacs. Hacen que su vida sea tremendamente más fácil al editar XML, C/C++ / Java / whatever, LaTeX y los más populares idiomas que puedas imaginar. Hacen que quieras mantener el editor abierto durante largas sesiones y trabajo.

Con todo, diré que Vim te atrae para tareas de edición cortas y rápidas; mientras que Emacs te anima a sumergirte en sesiones largas.

 41
Author: Yawar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-16 01:14:35

VI está siempre disponible y se ejecutará en el modo de usuario único más paralizado, gráficos rotos, sin mapa de teclas, máquina de enlace lento, por lo que vale la pena saber cómo editar archivos simples en él solo para tareas de administrador del sistema.

Emacs es una completa interfaz de usuario en un editor. La idea es que enciendas Emacs cuando enciendas la máquina y nunca la abandones. Es posible tener miles de sesiones presentes.

Si vale la pena aprender las capacidades de Emacs en comparación con el uso de una interfaz gráfica de usuario editor / IDE y el uso de algo como python / awk / etc para tareas adicionales depende de usted.

 35
Author: Martin Beckett,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-16 19:03:18

Soy un fanático de Emacs, pero conocí a VI mucho antes que a Emacs. Dicho esto, hago que toda mi gente aprenda VI porque está siempre disponible, en todas partes. No puedo equivocarme con ninguno de ellos.

 19
Author: Joe Casadonte,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-16 02:21:41

Empecé con vi, fui a emacs, luego a vim. He estado pensando en probar Emacs para ver qué ha cambiado en los últimos cinco años. (Hablando de IDE, había entrado en eclipse por un tiempo, pero prefiero mi ventana de terminal conectando mi mac a la caja linux de mi (esposo)).

Lo de cortar y pegar me ha estado molestando últimamente. Cortar y pegar en Vim toma más pasos que en Emacs, IIRC. Y pegar desde un navegador a una ventana de terminal es irritante a menos que hagas algo imagínate que no tengo ganas de hacerlo, así que aguanté la extraña sangría. Creo que editar varios archivos en emacs fue más fácil. Al menos saltando de un archivo al siguiente si los tiene a ambos en la pantalla.

No he jugado con las características de lujo de vi o emacs, ya que me gusta llegar al negocio de la codificación. Todo lo que necesito son los colores bonitos y la conversión adecuada de la pestaña al espacio (especialmente importante con python).

Creo que todo depende de si quieres use :wq o Ctrl-x Ctrl-s (IIRC) para guardar un archivo si no le importan las cosas elegantes.

@mgb tenía razón. He estado en el mínimo linux para arreglar algo hace apenas un mes o dos en una distribución Debian. vi era el único editor disponible.

 13
Author: Elizabeth Buckwalter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-27 15:17:26

Para mí los pros de emacs son,

  • el modo tramp le permite editar archivos remotos a través de ssh. igual que los archivos locales.
  • tramp-mode + dired = cliente sftp con todas las funciones
  • soporte para todos los idiomas que necesite.
  • construido en el emulador de terminal(term-mode) para que pueda seguir codificando sin cambiar entre aplicaciones.
  • extensibilidad todo lo que no te guste puedes cambiar usando lisp.
 9
Author: Hamza Yerlikaya,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-16 00:57:02

Parece que ya se ha seleccionado una respuesta, pero la gran diferencia para mí siempre ha sido la modal frente a la no modal. Vim es modal, lo que significa que realiza optimizaciones basadas en un conjunto específico de modos de uso. Al menos así es como siempre lo he visto. Esto hace que usar Vim sea una experiencia diferente porque en lugar de tener un área de trabajo en la que escribes código, realmente le estás diciendo a un entorno que actúe sobre el texto. Esta es la razón por la que la gente dice cosas como con Vim que realmente están aprendiendo un idioma. La barra :wq y: s/foo / es parte de un entorno similar al shell que edita y lee texto.

Emacs por otro lado está mucho más cerca de la mayoría de los editores/procesadores de texto/etc. lo ves hoy. Tiene un espacio de trabajo que tiene una interfaz altamente programable. Es por eso que ves cosas como correo electrónico, irc, shells, etc. Como programador es fácil pensar en términos de decir "toma el número de línea en el que estoy y haz algo con la información". El deseo de dejar el editor se hace menos porque en lugar de tener que salir, abrir alguna otra aplicación/idioma y hacer cosas en algún texto, tienes Emacs donde puedes hacer estas cosas dentro del alcance de tu editor.

Las dos ideas no son necesariamente contrastantes, pero es simplemente que revelan dos enfoques diferentes. Personalmente uso Emacs, pero he visto gente que conoce Vim muy bien y honestamente puede decir que no importa cuál elija. Probé Vim primero, pero Emacs terminó pegándome. Es cierto que no importa lo que elija, usted debe ser al menos algo competente en Vim, ya que realmente está siempre disponible.

 9
Author: elarson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-17 01:35:07

Hay una gran diferencia en el día a día-Vim (o cualquier variante vi) es inherentemente modal (entras en modos de comando donde no puedes editar) y Emacs (junto con la mayoría de los otros editores) no lo son.

Claro, usando menús y cosas así, no tiene que entrar realmente en modo de comando en Vim - al principio. Pero para usar incluso una pequeña fracción del poder de Vim lo harás. Este es el núcleo del debate Vim/Emacs.

Personalmente, también creo que Emacs es mucho más extensible. Usted puede encontrar paquetes Elisp para muchas cosas.

Tengo curiosidad, sin embargo, por qué estás pensando en aprender uno de estos sobre un IDE más tradicional. ¿Para qué quieres aprender uno de estos?

 9
Author: Kendall Helmstetter Gelner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-11-10 22:20:28

Hay muchas cosas que se han dicho sobre ambos editores, pero solo tengo mis 5 peniques para agregar. Ambos editores son maravillosos y no puedes equivocarte con ninguno de ellos.

Soy usuario de vi/vim desde hace unos 15 años. He intentado convertir a emacs varias veces, pero cada vez fue más bien descubrir que vim realmente puede hacer lo que falta fuera de la caja sin la necesidad de escribir una extensión lisp o instalar algo.

Para mí la principal diferencia en los editores que vim te hace usar el environment / OS, mientras que emacs intenta encapsularlo o reemplazarlo. Por ejemplo, puede agregar una fecha en su texto por: r!fecha en vim, o calendario con: r!cal 1 2014, o incluso reemplazar el contenido de su búfer con la versión hexadecimal de los contenidos. Eg. :%!xxd, editar hexadecimal y luego volver con:%!xxd-r, y muchos otros usos, como builtin grep, sed, etc.

También obtiene la funcionalidad de edición por lotes EX, por ejemplo. Reemplazar ciertas palabras, reformatear el código, convertir dos - > caracteres de nueva línea de Unix, ejecute una macro en digamos 100 archivos a la vez. Se hace fácilmente con ex. No estoy seguro si emacs tiene algo similar.

En otras palabras, IMHO vim se acerca más a la filosofía unix. Generalmente es más simple y más pequeño, pero si conoce su sistema operativo y sus herramientas, es probable que no necesite más de lo que(VIM) tiene para ofrecer. Nunca lo hago.

Además de que vi es estándar de facto en cualquier sistema unix/linux, por qué aprender a usar 2 herramientas que hacen lo mismo. Por supuesto, algunos sistemas ofrecen mg o algo similar, pero definitivamente no todos ellos. Unix + Vi Bueno, sólo mis 5 peniques.

 9
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-25 08:58:55

Para mí, emacs tiene mejores herramientas de desarrollo(no solo herramientas basadas en etiquetas).

 8
Author: bmeric,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-16 03:52:30

Me gustaría poner aquí una cita del libro "El arte de la programación UNIX":

Muchas personas que usan regularmente tanto vi como Emacs tienden a usarlos para cosas diferentes, y encontrar valioso saber ambos.

En general, vi es mejor para trabajos pequeños-respuestas rápidas al correo, simple ajustes en la configuración del sistema, y similares. Es especialmente útil cuando está utilizando un sistema nuevo (o uno remoto a través de una red) y no tiene sus archivos de personalización de Emacs útil.

Emacs funciona para sesiones de edición extendidas en las que tener que manejar tareas complejas, modificar varios archivos y usar resultados de otros programas durante la sesión. Para programadores que usan X on su consola (que es típica en Unixes modernos), es normal inicie Emacs poco después de la hora de inicio de sesión en una ventana grande y déjela corriendo para siempre, posiblemente visitando docenas de archivos e incluso corriendo programas en múltiples Emacs subventanas.

Lo que realmente quiero resaltar aquí es: " Muchas personas encuentran valioso conocer ambos."

 8
Author: Andrey Tykhonov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-16 22:45:38

Ahora ni siquiera necesitas pensar en la diferencia entre estos dos debido a Spacemacs. Es una distribución Emacs impulsada por la comunidad.

Como se dijo,

El mejor editor no es ni Emacs ni vim, es Emacs y Vim.

Spacemacs combina lo mejor de Emacs y Vim, lo que hace que su vida y trabajo sean mucho más fáciles.

También tiene un logotipo decente.

Ver captura de pantalla a continuación,

Http://spacemacs.org/doc/img/spacemacs-python.png

 8
Author: Xinyang Li,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-06 06:55:37

Beneficios de Emacs

  • Emacs tiene una interfaz no modal (por defecto) y una modal (por ejemplo, puede emular vim y vi a través de Evil, Viper o Vimpulse).

  • Uno de los programas informáticos más portados. Se ejecuta en modo texto y bajo interfaces gráficas de usuario en una amplia variedad de sistemas operativos, incluyendo la mayoría de sistemas Unix (Linux, los diversos BSDs, Solaris, AIX, IRIX, macOSetc).), MS-DOS, Microsoft Windows, AmigaOS y OpenVMS. Sistemas Unix, tanto libre como propietario, con frecuencia proporcionan Emacs incluido con el sistema operativo.

  • La arquitectura de servidor de Emacs permite que varios clientes se asocien a la misma instancia de Emacs y compartan la lista de búfer, el anillo de eliminación, el historial de deshacer y otros estados.

  • Sistema de ayuda en línea omnipresente con combinaciones de teclas, funciones y comandos documentados sobre la marcha.

  • Variante de lenguaje de programación Lisp extensible y personalizable (Emacs Lisp), con características que incluir:

  • Un potente y extensible administrador de archivos (dired), depurador integrado, y un gran conjunto de herramientas de desarrollo y otras.

  • Hacer que cada comando sea una función Lisp de Emacs permite a los comandos DWIM (Hacer Lo que quiero decir) respondiendo programáticamente a acciones pasadas y al estado del documento. Por ejemplo, un comando switch-or-split-window podría cambiar a otra ventana si existe, o crear una si es necesario. Esto reduce el número de pulsaciones de teclas y comandos a el usuario debe recordar.

  • "An OS inside an OS"(en inglés). Emacs Lisp permite programar Emacs mucho más allá de las funciones de edición. Incluso una instalación base contiene varias docenas de aplicaciones, incluyendo dos navegadores web, lectores de noticias, varios agentes de correo, cuatro clientes de IRC, una versión de ELIZA, y una variedad de juegos. Todas estas aplicaciones están disponibles en cualquier lugar donde Emacs se ejecute, con la misma interfaz de usuario y funcionalidad. A partir de la versión 24, Emacs incluye un gestor de paquetes, por lo que es fácil para instalar aplicaciones adicionales, incluyendo navegadores web alternativos, EMMS (Emacs Multimedia System), y más. También están disponibles numerosos paquetes para la programación, incluyendo algunos dirigidos a combinaciones específicas de lenguaje/biblioteca o estilos de codificación.

Beneficios de los editores similares a vi

  • Los comandos de edición son componibles
  • Vi tiene una interfaz modal (que Emacs puede emular)
  • Históricamente, vi carga más rápido que Emacs.
  • Mientras profundamente asociado con la tradición UNIX, se ejecuta en todos los sistemas que pueden implementar la biblioteca C estándar, incluyendo UNIX, Linux, AmigaOS, DOS, Windows, Mac, BeOS, OpenVMS, IRIX, AIX, HP-UX, BSD y sistemas compatibles con POSIX.
  • Extensible y personalizable a través de script Vim o API para lenguajes interpretados como Python, Ruby, Perl y Lua
  • Omnipresente. Esencialmente, todos los sistemas Unix y Unix-like vienen con vi (o una variante) incorporada. Vi (y ex, pero no vim) se especifica en el POSIX estándar.
  • Los entornos de rescate del sistema, los sistemas embebidos (especialmente aquellos con busybox) y otros entornos restringidos a menudo incluyen vi, pero no emacs.

Fuente: https://en.wikipedia.org/wiki/Editor_war

 8
Author: artamonovdev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-26 23:49:08

La mayor diferencia para mí al elegir usar emacs sobre vim fue el soporte gdb integrado en emacs. Vim no tiene esto incluido en su distribución predeterminada y el proyecto allí para integrar gdb y vim fue casi imposible trabajar con MacVim

 5
Author: Grant Limberg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-09-15 23:35:45

Emacs tiene viper-mode, por lo que en cierto sentido real, proporciona un superconjunto de características (excepto las descritas en ¿Qué características de Vim faltan en Emacs con Viper y Vimpulse?).

Vi (y VIM IIRC) es más ligero (puede editar archivos en su lugar), pero ofrece menos características (comunicación de subprocesos, lenguaje de extensión).

 5
Author: Trey Jackson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:55:07

Un punto de vista ictericia:

Vi (no vim) es una necesidad profesional. Siempre tienes alguna forma de vi fácilmente disponible, no importa lo que el medio ambiente. Puedes estar en vi cuando está en emacs, puede estar en vi para construir comandos bash en unix-land.

Incluso Microsquish tiene que soportar vi (aunque hacen un buen trabajo de esconderlo) debido al gobierno y el cumplimiento corporativo con publicado estándar.

En mi opinión, si usted está en un trabajo práctico en un ambiente ocupado not no un flor de invernadero confinado a un aparejo de lujo en un desarrollo medio ambiente, o en la academia knowing saber mucho sobre un editor de lujo es un trabajo handicap. No aprendas todos los trucos de fantasía en vim o emacs, y no desarrolla un montón de macros para que el entorno de edición se doblegue a tu voluntad. Es un enorme sumidero de tiempo que se interpone en tu camino cuando atiendes a diferentes máquinas que probablemente no pueda justificar en una fábrica ambiente.

Lea el documento de Bill Joy is es un documento muy competente, tal vez incluso hermoso, ejercicio de ingeniería en la edición de texto plano muy, muy rápida. La regla de Parito se aplica aquí: el 80% de la fruta está en 20% de las cestas. Edición de texto plano muy muy rápido es el quid de competencia de edición all todo lo demás es opcional and y a veces hiriente.

 3
Author: user3305072,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-13 08:44:00

Es como manzanas y naranjas. Ambos tienen diferentes diseños y filosofías. Vim es un Editor de Texto, mientras que Emacs es un Intérprete Lisp que realiza la Edición de Texto.

Uso Vim porque es rápido, sórdido y muy bueno manipulando textos. Tiene una encuadernación natural composable que puede hacer que tus tareas de desarrollo sean realmente armónicas. Vim se basa en la simple * nix philiosphy de hacer una cosa realmente bien-es decir, la manipulación de texto.

Extender Vim usando bash / zsh y tmux suele ser fácil y te permite aprender muchas cosas. En mi humilde opinión esta es una buena curva de aprendizaje. La clave es aprender a integrar estas cosas para obtener una aplicación de trabajo más grande. Con Vim necesitarás aprender integración porque no se integra naturalmente a menos que tú le digas cómo hacerlo. Otra extensión que vale la pena que uso es Tig . Es un frontend Git basado en ncurses . Solo tengo un enlace que abre Tig silenciosamente y luego hago todas las cosas de Git allí.

Depende del usuario final decidir lo que funciona mejor. Que Emacs y Vim hayan resistido la prueba del tiempo es prueba de su valía. Eventualmente un buen programador no necesita nada más que un bolígrafo y un papel para ser creativo. Los buenos algoritmos no necesitan editores para respaldarlos. Así que pruébelos a ambos y vea qué lo hace más productivo. Y aprender patrones de diseño de estos dos softwares, ya que hay mucho que aprender y descubrir!

 3
Author: Nishant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-26 20:32:30

Emacs es realmente más un programa do everything, y vi(m) es realmente solo un editor. Si estás editando texto, ambos están bien, pero prefiero emacs, simplemente porque tengo que desplazar uno de la fila de inicio para moverme y seguir escribiendo las cosas incorrectas en el modo de comando. Si no tienes ese problema, vi (m) puede ser el editor para ti.

 2
Author: qwertyuiop924,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-19 14:05:57

Si se mueve mucho de un sitio a otro o su trabajo implica iniciar sesión en los sistemas de producción, entonces vim es el camino a seguir.

Todas las máquinas *nix tendrán vi instalado de forma predeterminada.

La mayoría de los sysdamins prefieren ksh como shell por defecto. ksh usa pulsaciones de teclas de comando vi (o emacs) para buscar en el historial y editar la línea de comandos.

Si no conoce bien vi, está gravemente discapacitado cuando inicia sesión en una caja unix con una configuración estándar.

Por esta sola razón yo recomendaría vim como su editor diario normal. He visto a los fans de emacs arrancarse el pelo tratando de modificar los archivos de configuración en un servidor unix básico.

 1
Author: James Anderson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-08-17 01:51:31

Vim es un editor práctico, simplemente escriba vim filename para abrir el archivo, editar, guardar y cerrar.

Emacs es un "sistema operativo" finge ser un editor, puedes eval codificar para cambiar su comportamiento, y extenderlo como quieras. A mode recibir/enviar correo electrónico en emacs es como un software de correo electrónico en el sistema operativo.

Al hacer una edición simple, por ejemplo, modificar un archivo de configuración, utilizo vim.

De lo Contrario, nunca dejo emacs.

 1
Author: Richard,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-11 14:33:08

En tu pregunta, ¡no has mencionado que quieres que se programe en Lisp! Pero como has estado comentando tus respuestas, he entendido que realmente quieres una interfaz de programación LISP.

Para esa tarea precisa, simplemente olvídese de Vi. La integración de Emacs con LISP es maravillosa! Deberías usar LIMO. A continuación, tendrá una maravillosa integración con el REPL, siendo capaz de eval funciones, búferes o archivos directamente en un intérprete en ejecución en un búfer emacs y mucho mas...

 0
Author: Pedro Morte Rolo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-04 15:48:38

Ejecución de pulsaciones de teclas::: vi edición conserva cada permutación de claves escritas. Esto crea una ruta en el árbol de decisiones que identifica inequívocamente cualquier comando, mientras que los comandos Emacs son una combinación de teclas escritas ejecutadas inmediatamente, lo que deja al usuario la opción de usar o no un comando.

Uso de memoria y personalización::: vi es un programa más pequeño y rápido, con una capacidad de personalización más limitada, mientras que Emacs tarda más en iniciarse y requiere más memoria. Sin embargo, es altamente personalizable e incluye un gran número de características, ya que es esencialmente un entorno de ejecución para un programa Lisp diseñado para la edición de texto.

 0
Author: Sudhir Bastakoti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-04 15:59:56

Creo que la principal diferencia es el objetivo de diseño. VIM es para UNIX como editor de trabajo. Emacs es para hackers de GNU y lisp, por lo que tiene algún elemento de diseño mixto.

Uso vim en mi estación de trabajo, mientras que me encanta emacs también.

 0
Author: 7xEquation,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-27 00:51:31

Soy fan de Emacs pero animo a otros desarrolladores a aprender VI porque:

  1. puede usar VI para editar los makefiles de emacs.
  2. VI incluye comandos ed y cada usuario de UNIX debe conocer ed y sed.

He notado varios comentarios sobre VIM comenzando más rápido que emacs. Si realmente te importa eso, ejecuta emacs en modo servidor y alias 'emacs' a 'emacsclient'. El cliente es súper rápido ya que todo lo que hace es tocar el servidor en el hombro y decirle qué archivo quiero editar. En MacOSX, emacsclient es de solo 33K, mientras que emacs es de 287M.

No estoy seguro de que esto sea necesario en hardware moderno. En mi MacBook Pro (Retina 2013), emacs se carga casi instantáneamente cuando lo corro desde el shell. No detecto ninguna pausa. Cuando corro Emacs.app (la versión GUI) puede tardar 3 segundos.

La mayoría de las quejas que escucho sobre emacs parecen provenir de personas mal informadas sobre emacs. Después de haber utilizado tanto vi como emacs desde 1982, definitivamente recuerdo un tiempo en que emacs cargaba mucho más lento que vi y usaba la mayor parte de la memoria física en mis primeras cajas UNIX, pero ese ya no es el caso y no lo ha sido durante al menos 15-20 años.

Una queja que concederé es "emacs pinkie". Esto nunca me molestó en absoluto cuando era más joven. Ahora que tengo 58 años, mi meñique se irrita un poco al acceder repetidamente a la tecla de control para los acordes de emacs. Esto es especialmente cierto en el teclado MacBook Pro, donde el control se mueve una posición hacia la derecha para hacer espacio para la llave "fn". No es tan molesto cuando el Control es la tecla inferior izquierda.

 0
Author: Phil Harbison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-14 22:03:24

En primer lugar Vi (realización original) no se utiliza hoy. Que usted dice es alguna derivación Vim.

Para extender la funcionalidad de Vim debe recompilar Vim, no Emacs.

Emacs tiene Vim en self (viper-mode).

Emacs generalmente necesita instalación manual, Vim normalmente preinstalado en todos los sistemas operativos Unix like (pero si tiene acceso ssh al host tramp-mode win Vim :).

Si intentas Vim, odias Emacs, así que empieza desde Emacs primero.

Leer También http://www.dina.dk / ~abraham/religion/vi-tutorial.html (enlace bajar así que use este )

Anwer buscar en hxxp://en.wikipedia.org / wiki / Editor_war

 -6
Author: gavenkoa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-10-25 10:36:18