Pregunta Diferencias entre Emacs y Vim


Sin entrar en una discusión religiosa sobre por qué uno es mejor que el otro, ¿cuáles son los práctico diferencias 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 qué es mejor, estoy preguntando las diferencias entre los dos. Me gustaría un objetivo comparación.


546


origen


Respuestas:


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

Con Emacs se espera que lo tenga abierto las 24 horas del día, los 7 días de la semana y viva dentro del programa, ya que casi todo lo que hace se puede hacer desde allí. Usted escribe sus propias extensiones, las usa para tomar notas, organización, juegos, programación, acceso a shell, acceso a archivos, escuchar música, navegar por la web. Se necesitan semanas y semanas hasta que esté contento con él y luego aprenderá nuevas cosas todo el tiempo. Se sentirá molesto cuando no tenga acceso y cambie constantemente su configuración. No podrá usar las versiones de otras personas emacs fácilmente y no solo se instalará. Utiliza Lisp, que es genial. Puedes convertirlo en lo que quieras que sea. (nada en absoluto)

Con Vim, casi siempre está preinstalado. Es rápido. Abre un archivo, realiza una edición rápida y luego abandona. 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, no escribiendo y hace que esa parte sea más rápida. Usted no sufre de emacs pinkie. No es tan exasperante. Es más fácil de aprender.

Aunque utilizo 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


405



Vim no es un caparazón. Y no se comunica bien con los subprocesos. Esto es casi por diseño, mientras que en Emacs, estos elementos están incluidos por diseño. Esto significa que algunas cosas, como la incorporación de un depurador o un intérprete (que produce una especie de IDE), es difícil en Vim.

Además, los accesos directos de Emacs se acceden principalmente a través de modificadores, y obviamente la interfaz de Vim es famosa por ser modal, lo que da acceso a una cantidad absurda de claves 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 para su programabilidad, con la adición de enlaces de Python y Ruby (y más, lo olvido), Vim también es programable en muchos aspectos. te importaría.

Yo uso Vim, y estoy bastante feliz con eso.


113



Empuje: 

  • mejor como un editor simple (se requieren menos claves para tareas simples)
  • comunidad de scripting más activa - lenguaje interno: vimscript
  • un repositorio central de scripts, complementos, combinaciones de colores, ...
  • también extensible en python, ruby
  • puede hacerse portátil (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 modo malvado que emula el comportamiento vim.
  • un lenguaje más potente para extenderlo (elisp es un lenguaje completo, y en emacs puedes redefinir prácticamente todo, mientras que en vim no puedes redefinir las funciones de compilación en el editor. En el lado negativo, vimscript es relativamente similar a los lenguajes dinámicos de hoy en día mientras elisp no se parece mucho a nada)
  • más extensible
  • excelente soporte para herramientas GNU (el grupo de ellas)

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 lo es, está en mi humilde opinión, desactualizado. En los viejos tiempos, tenía un cliente de correo electrónico, cliente ftp, tetris, ... lo que en un paquete (emacs) tenía sentido ... hoy en día, ya no funciona.

Sin embargo, ambos son un tema de discusiones religiosas entre los usuarios de la comunidad de programadores y superusuarios, y en ese sentido, ambos son excelentes para iniciar guerras de fuego si se ponen en contacto (en la misma oración / pregunta).


91



Si está buscando un análisis objetivo de ambos editores, observe sus orígenes y la filosofía detrás de sus respectivos diseños. Piensa, cuál te conviene más y aprende (y aprende y aprende, porque toma tiempo antes de descubrir su verdadera utilidad frente a cualquier IDE). Una introducción a la edición de pantallas con Vi fue escrito por Bill Joy y Mark Horton y explica por qué eligió el diseño modal y la lógica para varios trazos clave (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 más tiempo.

Aquí hay un enlace a Emacs timeline y tiene la referencia al papel Multics Emacs. Hereis RMS papel en Emacs, donde veo que la tensión 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 documento VI de Bill Joy un par de veces. Ambos son antiguos, pero aún así obtendrás la filosofía y podrías elegir usar la herramienta actual (vim 7.x o emacs 25?)

Editar: Olvidé mencionar que se necesita paciencia e imaginación para leer estos dos documentos, ya que te lleva al pasado mientras lo lees. Pero vale la pena


42



  1. Vim siempre fue más rápido para iniciar 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 aún se iniciará más rápido que Emacs.

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

Con todo, diré que Vim te lleva a ello para tareas de edición cortas y rápidas; mientras que Emacs te anima a bucear durante largas sesiones.


39



VI siempre está disponible y se ejecutará en el modo de usuario único más estropeado, gráficos rotos, sin mapa de teclado, 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 interfaz de usuario completa 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 un editor / IDE GUI y el uso de algo como python / awk / etc para tareas adicionales depende de usted.


34



Soy un verdadero fan-boy de Emacs, pero sabía VI mucho antes de conocer a Emacs. Dicho esto, hago que toda mi gente aprenda VI porque siempre está disponible, en todas partes. No puede ir mal con ninguno de ellos.


18



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, me había metido en eclipse por un tiempo, pero prefiero que mi ventana terminal conecte mi Mac a mi (de mi marido) linux box).

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, por ejemplo, un navegador hasta una ventana de terminal es irritante a menos que hagas algo que no me apetece, así que aguanté la extraña sangría. Creo que editar archivos múltiples en emacs fue más fácil. Al menos saltar de un archivo a otro si los tiene a ambos en la pantalla.

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

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

@mgb fue correcto. He estado en el mínimo de Linux para arreglar algo hace solo un mes o dos en una distribución de Debian. vi fue el único editor disponible.


13



Para mí, los profesionales de emacs son:

  • vagabundo le permite editar archivos remotos a través de ssh. al igual que los archivos locales.
  • tramp-mode + dired = cliente sftp con todas las funciones
  • soporte para cada idioma que necesite.
  • construido en emulador de terminal (modo de término) para que pueda seguir codificando sin cambiar entre aplicaciones.
  • extensibilidad todo lo que no te guste puedes cambiar usando lisp.

9