Diferencias entre Emacs y Vim

Resuelto Sasha Chedygov asked hace 15 años • 30 respuestas

¿Qué diferencias prácticas y objetivas existen entre Emacs y Vim? Por ejemplo, ¿qué se puede hacer usando uno pero no el otro (o qué se puede hacer más fácilmente con uno que con el otro)? ¿Qué debo saber para elegir uno para aprender?

Sasha Chedygov avatar Sep 16 '09 06:09 Sasha Chedygov
Aceptado

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

Con Emacs se espera que lo tengas abierto las 24 horas del día, los 7 días de la semana y que viva dentro del programa, casi todo lo que hagas se puede hacer desde allí. Usted escribe sus propias extensiones, las usa para tomar notas, organizar, jugar, programar, acceder al shell, acceder a archivos, escuchar música y navegar por la web. Se necesitan semanas y semanas hasta que esté satisfecho con él y luego aprenderá cosas nuevas todo el tiempo. Te molestará no tener acceso a él y cambiar constantemente tu configuración. No podrá utilizar fácilmente las versiones de emacs de otras personas y no se instalará simplemente. Utiliza Lisp, lo cual es genial. Puedes convertirlo en lo que quieras que sea. (nada en absoluto)

Con Vim, casi siempre está preinstalado. Es rápido. Abres un archivo, lo editas rápidamente y luego sales. Puedes trabajar con la configuración básica si estás 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 parte del tiempo estás 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.

Aunque uso Emacs todo el día, todos los días (y me encanta), a menos que tengas la intención de pasar mucho tiempo en el programa que elijas, elegiría vim.

James Brooks avatar Sep 16 '2009 14:09 James Brooks

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 se incluyen por diseño. Esto significa que algunas cosas, como incorporar un depurador o un intérprete (produciendo una especie de IDE), son difíciles en Vim.

Además, se accede a los atajos de Emacs principalmente a través de modificadores y, obviamente, la interfaz de Vim es famosa por ser modal, lo que brinda acceso a una cantidad absurda de teclas directas para 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 los sentidos. te importaría.

Utilizo Vim y estoy bastante contento con él.

Svend avatar Sep 15 '2009 23:09 Svend

Empuje:

  • mejor como editor simple (se requieren menos claves para tareas simples)
  • comunidad de scripting más activa - lenguaje interno: vimscript
  • un depósito central de scripts, complementos, combinaciones de colores, ...
  • también extensible en python, ruby
  • se puede hacer portátil (emacs tiene algunos problemas con eso)

Emacs:

  • no modal por defecto (la mayoría de los editores actuales han adoptado este enfoque). Aunque existe un modo malvado que emula el comportamiento de vim.
  • 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 integradas del editor. En el lado negativo, vimscript es relativamente similar a los lenguajes dinámicos actuales, mientras que elisp no se parece a casi nada)
  • más extensible
  • excelente soporte para herramientas GNU (un montón 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 del todo, está en mi humilde opinión, desactualizado. En los viejos tiempos, tener un cliente de correo electrónico, un cliente ftp, tetris,... todo eso en un solo paquete (emacs) tenía algún sentido... hoy en día, ya no lo tiene.

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

Rook avatar Sep 15 '2009 23:09 Rook

Si buscas un análisis objetivo de ambos editores, fíjate en sus orígenes y la filosofía detrás de sus respectivos diseños. Piensa cuál te conviene más y apréndelo (y apréndelo y apréndelo, porque lleva tiempo descubrir su verdadera utilidad frente a cualquier IDE). Bill Joy y Mark Horton escribieron una introducción a la edición de pantalla con Vi y explica por qué elige el diseño modal y el fundamento de varias pulsaciones de teclas (me ayuda recordar que CTRL-W +W (cambiará a la siguiente ventana y Será lo mismo para CTRL W+ CTRL W, en caso de que haya mantenido presionada la tecla CTRL por más tiempo.

Aquí hay un enlace a la línea de tiempo de Emacs y tiene la referencia al artículo de Multics Emacs. Aquí está el artículo de RMS sobre Emacs , donde veo que el énfasis está en un editor de texto programable (incluso allá por 1981 y antes).

No he leído los artículos de emacs, pero sí el artículo vi de Bill Joy un par de veces. Ambos son antiguos, pero aún así entenderá la filosofía y podrá optar por utilizar la herramienta actual (¿vim 7.x o emacs 25?)

Editar: Olvidé mencionar que se necesita paciencia e imaginación para leer ambos artículos, ya que te transporta al pasado mientras los lees. Pero vale la pena.

Senthil Kumaran avatar Sep 16 '2009 04:09 Senthil Kumaran