Sin entrar en un argumento religioso 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 gustaría una comparación objetiva .
,salespitch
Esto es lo que dice en #emacs<fsbot> We aren't gonna lie. Emacs sucks. Some of us tolerate it, but we can't tell you if YOU'LL be able to. Try it and make up your own mind.
PAGER=cat man
, man mostrará el texto directamente en la pantalla.i, esc, wq
.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 abra las 24 horas del día, los 7 días de la semana y que viva dentro del programa, casi todo lo que puede hacer 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. Lleva semanas y semanas hasta que estés contento con él y luego aprenderás cosas nuevas todo el tiempo. Te molestará cuando no tengas acceso a él y cambies constantemente tu configuración. No podrá usar las versiones de emacs de otras personas 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 sale. 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 irritante. 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
fuente
vi
lugar devim
alias.ssh
en otras máquinas. Por eso lo aprendí primero, eso, y porque mis amigos conocían VIM y podían ayudarme. (¡No subestimes el apoyo deVim no es una concha. Y no se comunica bien con 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 incrustar un depurador o un intérprete (que produce una especie de IDE), es difícil en Vim.
Además, a los accesos directos de Emacs se accede principalmente a través de modificadores, y obviamente la interfaz de Vim es famosa por modal, dando acceso a una cantidad absurda 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 capacidad de programación, 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 te importaría
Yo uso Vim, y estoy bastante contento con eso.
fuente
Empuje:
Emacs:
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, en mi humilde opinión, está desactualizado. En los viejos tiempos, tener un cliente de correo electrónico, un cliente ftp, un tetris, ... lo que estaba en un paquete (emacs) tenía sentido ... hoy en día, ya no lo es.
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 llamas si se ponen en contacto (en la misma oración / pregunta).
fuente
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. Piense, cuál le conviene mejor y aprenda (y aprenda y aprenda, 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 pantallas con Vi y explica por qué eligió el diseño modal y la justificación de varias pulsaciones de teclas (me ayuda a recordar que CTRL-W + W (cambiará al siguiente W indow y se será 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 la línea de tiempo de Emacs y tiene la referencia al papel de Multics Emacs. Documento de Hereis RMS sobre Emacs , donde veo que el estrés 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 periódico vi de Bill Joy un par de veces. Ambos son antiguos, pero aún así obtendrá la filosofía y podría optar por utilizar la herramienta actual (vim 7.xo emacs 25?)
Editar: Olvidé mencionar que se necesita paciencia e imaginación para leer estos dos documentos, ya que te transporta al pasado mientras los lees. Pero vale la pena.
fuente
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 moderada cantidad de personalización de cualquiera de ellos, Vim aún se iniciará más rápido que Emacs.
Después de eso, la otra diferencia práctica fueron los modos de Emacs. Le facilitan enormemente la vida al editar XML, C / C ++ / Java / lo que sea, LaTeX y los lenguajes más populares que se le ocurran. Te hacen querer mantener el editor abierto para largas sesiones y trabajo.
En general, diré que Vim lo atrae hacia tareas de edición cortas y rápidas; mientras que Emacs lo alienta a bucear durante largas sesiones.
fuente
use-package
su:defer
opción, mi Emacs se abre casi de inmediato. Incluso dejé de usar emacsclient.VI siempre está disponible y se ejecutará en el modo de usuario único más lisiado, gráficos rotos, sin mapa de teclas, máquina de enlace lento, por lo que vale la pena saber cómo editar archivos simples solo para tareas de administrador de sistemas.
Emacs es una interfaz de usuario completa en un editor. La idea es que enciendas Emacs cuando enciendas la máquina y nunca la dejes. Es posible tener miles de sesiones presentes.
Depende de usted aprender las capacidades de Emacs en comparación con usar un editor / IDE de GUI y usar algo como python / awk / etc. para tareas adicionales.
fuente
ed
que era "siempre disponible y se ejecutará en el modo de usuario único más lisiado, gráficos rotos, sin mapa de teclas, máquina de enlace lento". Espera, ¿qué año es este? (Suspiroed
, nunca te olvidaré)Soy un fanático de Emacs, pero conocía 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 te puedes equivocar con ninguno de ellos.
fuente
Parece que ya se ha seleccionado una respuesta, pero la gran diferencia para mí siempre ha sido modal versus 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 escriba el código, realmente le está diciendo a un entorno que actúe sobre el texto. Es por eso que la gente dice cosas como que con Vim realmente estás aprendiendo un idioma. El: wq y: s / foo / bar es parte de un entorno tipo 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. 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 abandonar el editor se vuelve menos porque en lugar de tener que salir, abrir otra aplicación / idioma y hacer cosas en algún texto, tiene Emacs donde puede hacer estas cosas dentro del alcance de su editor.
Las dos ideas no son necesariamente contrastantes, pero es simplemente que revelan dos enfoques diferentes. Personalmente uso Emacs, pero he visto personas que conocen a Vim muy bien y pueden decir honestamente que no importa cuál elijas. Primero probé con Vim pero Emacs terminó pegándome. Es cierto que no importa lo que elija, debe ser al menos algo competente en Vim, ya que realmente siempre está disponible.
fuente
Comencé 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 que mi ventana de terminal conecte mi Mac a mi caja de Linux (del esposo)).
Lo de cortar y pegar me ha estado molestando últimamente. Cortar y pegar en Vim da más pasos que en Emacs, IIRC. Y pegar desde decir un navegador a una ventana de terminal es irritante a menos que hagas algo elegante que no tengo ganas de hacer, así que aguanto la sangría extraña. Creo que editar varios archivos en emacs fue más fácil. Al menos saltando de un archivo a otro si los tiene a ambos en la pantalla.
No he jugado con las características sofisticadas de vi o emacs, ya que me gusta llegar al negocio de la codificación. Todo lo que necesito son los bonitos colores y la conversión adecuada de la pestaña al espacio (especialmente importante con Python).
Creo que todo depende de si quieres usar
:wq
oCtrl-x Ctrl-s
(IIRC) para guardar un archivo si no te importan las cosas elegantes.@mgb fue correcto. He estado en Linux como mínimo para arreglar algo hace solo un mes o dos en una distribución de Debian. vi fue el único editor disponible.
fuente
:set paste
, luego pegue su texto y cuando haya terminado:set nopaste
volverá al modo normal. También existe el:set pastetoggle=<F2>
comando que alternará esto usando el combo de teclas elegido.^R^P+
pegar desde el portapapeles y mantener la sangría actual.^R^O+
caerá la sangría.^R+
lo insertará como si lo hubiera escrito.:help i_^R^P
para más información.yyp
. Además, vea aquí para cortar y pegar desde y hacia diferentes ventanas stackoverflow.com/a/8757876/654789Hay una gran diferencia en el nivel del día a día: Vim (o cualquier variante vi) es inherentemente modal (entra en modos de comando donde no puede editar) y Emacs (junto con la mayoría de los otros editores) no lo son.
Claro, al usar menús y demás, no tiene que ingresar al modo de comando en Vim, al principio. Pero para usar incluso una pequeña fracción del poder de Vim lo harás. Eso está en el corazón del debate de Vim / Emacs.
Personalmente, también creo que Emacs es mucho más extensible. Puede encontrar paquetes de Elisp para muchas cosas.
Sin embargo, tengo curiosidad de por qué está pensando aprender uno de estos a través de un IDE más tradicional. ¿Para qué quieres aprender uno de estos?
fuente
Se han dicho muchas cosas sobre ambos editores, pero solo tengo que agregar mis 5 peniques. Ambos editores son maravillosos y no puedes equivocarte con ninguno de ellos.
Soy usuario de vi / vim desde hace aproximadamente 15 años. Intenté convertirme a emacs varias veces, pero cada vez descubrí que vim realmente puede hacer lo que falta de la caja sin la necesidad de escribir una extensión lisp o instalar algo.
Para mí, la principal diferencia en los editores es que vim te hace usar el entorno / SO, mientras que emacs intenta encapsularlo o reemplazarlo. Por ejemplo, puede agregar una fecha en su texto por: r! Date 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. P.ej. :%! xxd, edita hexadecimal y luego regresa con:%! xxd -r, y muchos otros usos más, como grep incorporado, sed, etc.
Otro ejemplo es el uso con
jq
ygron
. P.ej. pegue json blob en el editor y luego ejecute la transformación:O
Cada uno de los comandos canalizados anteriores se puede ejecutar por separado a través de
:%!<command>
, donde%
significa todo el documento, pero también se puede ejecutar en la selección, líneas seleccionadas, etc. Aquíoutput
se puede usar gron comojq
ruta.También obtiene la funcionalidad de edición por lotes EX, por ejemplo. Reemplazando ciertas palabras, formateando el código, convirtiendo dos-> caracteres de línea nueva 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 a la filosofía de Unix. En general, 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. Yo nunca.
Además, vi es el 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. Unix + Vi <3.
Bueno, solo mis 5 peniques.
fuente
Para mí, los profesionales de emacs son,
fuente
Para mí, emacs tiene mejores herramientas de desarrollo (no solo herramientas basadas en etiquetas).
fuente
Me gustaría poner aquí una cita del libro "The Art of UNIX Programming":
Lo que realmente quiero resaltar aquí es: «A muchas personas les resulta valioso conocer ambas ».
fuente
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 de texto y bajo interfaces gráficas de usuario en una amplia variedad de sistemas operativos, incluidos la mayoría de los sistemas tipo Unix (Linux, los diversos BSD, Solaris, AIX, IRIX, macOSetc.), MS-DOS, Microsoft Windows, AmigaOS, y OpenVMS. Los sistemas Unix, tanto gratuitos como propietarios, con frecuencia proporcionan Emacs incluidos con el sistema operativo.
La arquitectura del servidor Emacs permite que varios clientes se conecten a la misma instancia de Emacs y compartan la lista de búfer, el anillo de cierre, el historial de deshacer y otros estados.
Sistema de ayuda en línea generalizado 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 incluyen:
Un administrador de archivos potente y extensible (dired), depurador integrado y un amplio conjunto de herramientas de desarrollo y otras.
Tener cada comando como una función Emacs Lisp habilita los comandos para DWIM (Do What I Mean) respondiendo programáticamente a acciones pasadas y al estado del documento. Por ejemplo, un comando de cambio o ventana dividida 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 que un usuario debe recordar.
"Un sistema operativo dentro de un sistema operativo". Emacs Lisp permite que Emacs se programe mucho más allá de las funciones de edición. Incluso una instalación base contiene varias docenas de aplicaciones, incluidos dos navegadores web, lectores de noticias, varios agentes de correo, cuatro clientes IRC, una versión de ELIZA y una variedad de juegos. Todas estas aplicaciones están disponibles en cualquier lugar donde se ejecute Emacs, con la misma interfaz de usuario y funcionalidad. A partir de la versión 24, Emacs incluye un administrador de paquetes, lo que facilita la instalación de aplicaciones adicionales que incluyen navegadores web alternativos, EMMS (Emacs Multimedia System) y más. También están disponibles numerosos paquetes para programación, incluidos algunos dirigidos a combinaciones específicas de idioma / biblioteca o estilos de codificación.
Beneficios de los editores tipo vi
Fuente: https://en.wikipedia.org/wiki/Editor_war
fuente
Ahora ni siquiera necesita pensar en la diferencia entre estos dos debido a Spacemacs . Es una distribución de Emacs dirigida por la comunidad.
Como decía
Spacemacs combina lo mejor de Emacs y Vim, lo que hace que su vida y su trabajo sean mucho más fáciles.
Ver captura de pantalla a continuación,
(fuente: spacemacs.org )
fuente
La mayor diferencia para mí al elegir usar emacs sobre vim fue el soporte integrado de gdb en emacs. Vim no tiene esto incluido en su distribución predeterminada y el proyecto allí para integrar gdb y vim era casi imposible de trabajar con MacVim
fuente
Es como manzanas y naranjas. Ambos tienen un diseño y una filosofía diferentes. Vim es un editor de texto, mientras que Emacs es un intérprete Lisp que hace edición de texto.
Uso Vim porque es rápido, furtivo y realmente bueno para manipular textos. Tiene un enlace de tecla natural composable que puede hacer que sus 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.
Ampliar Vim usando bash / zsh y tmux suele ser fácil y le permite aprender muchas cosas. En mi humilde opinión, esta es una buena curva de aprendizaje. La clave es aprender cómo 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 le digas cómo hacerlo. Otra extensión que vale la pena que uso es Tig. Es una interfaz Git basada en ncurses. Solo tengo un enlace que abre Tig en silencio y luego hago todas las cosas de Git allí.
Depende del usuario final decidir qué funciona mejor. Que Emacs y Vim hayan resistido la prueba del tiempo es prueba de su valía. Finalmente, un buen programador no necesita 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 aprenda patrones de diseño de estos dos softwares, ya que hay mucho que aprender y descubrir!
fuente
Emacs tiene el modo viper, por lo que, en cierto sentido, 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 liviano (puede editar archivos en su lugar), pero ofrece menos funciones (comunicación de subproceso, lenguaje de extensión).
fuente
Emacs es realmente más un programa de hacer todo , y vi (m) es realmente solo un editor. Si está editando texto, ambos están bien, pero prefiero emacs, simplemente porque tengo que cambiar 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.
fuente
Un punto de vista ictericia:
vi (no vim) es una necesidad profesional. Siempre tiene alguna forma de vi fácilmente disponible, sin importar el entorno. Puede 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 al ocultarlo) debido al cumplimiento gubernamental y corporativo de los estándares publicados.
En mi opinión, si estás en un trabajo práctico en un entorno ocupado, no en una flor de invernadero confinada a una plataforma elegante en un entorno de desarrollo o en la academia, saber mucho sobre un editor elegante es una desventaja laboral. No aprenda todos los trucos elegantes en vim o emacs, y no desarrolle un montón de macros para hacer que el entorno de edición se doblegue a su voluntad. Es una enorme pérdida de tiempo que se interpone en su camino cuando atiende a diferentes máquinas que probablemente no pueda justificar en un entorno de fábrica.
Lea el artículo de Bill Joy: es un ejercicio de ingeniería muy competente, quizás incluso hermoso, para editar texto plano muy, muy rápido. La regla de Parito se aplica aquí: el 80% de la fruta está en el 20% de las canastas. Editar texto plano muy muy rápido es el quid de la competencia de edición, todo lo demás es opcional y, a veces, perjudicial.
fuente
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 por defecto.
La mayoría de los sysdamins prefieren ksh como el shell predeterminado. ksh usa las teclas de comando vi (o emacs) para buscar en el historial y editar la línea de comando.
Si no conoce bien vi, está gravemente discapacitado cuando inicia sesión en un cuadro de Unix con una configuración estándar.
Solo por esta razón, recomendaría vim como su editor normal todos los días. He visto a los fanáticos de emacs arrancar el pelo tratando de enmendar los archivos de configuración en un servidor Unix.
fuente
set -o vi
en su.bashrc
, en lugar deset -o emacs
, que se usa de forma predeterminada. Nunca usé ksh, pero podría ser lo mismo.¡En su pregunta, no ha mencionado que desea que se programe en Lisp! Pero como ha estado comentando sus respuestas, he entendido que realmente desea una interfaz de programación LISP.
Para esa tarea precisa, simplemente olvídate de Vi. ¡La integración de Emacs con LISP es maravillosa! Deberías usar SLIME. Entonces tendrá una integración maravillosa con REPL, pudiendo
eval
funciones, buffers o archivos directamente en un intérprete en ejecución en un buffer de emacs y mucho más ...fuente
He trabajado con spacemacs durante aproximadamente 2 años y neovim durante aproximadamente un año en un entorno de producción / investigación. Spacemacs es emacs con un par de características adicionales agradables como capas, etc. Y neovim es una bifurcación de vim nuevamente con algunas características adicionales.
Estoy bastante insatisfecho con ambos en términos de experiencia. Y todavía estoy buscando una solución a largo plazo para mis necesidades de edición de texto.
Aquí hay una comparación simple:
Neovim, vim, emacs, spacemacs, etc. todos esos editores consumen menos recursos en comparación con la mayoría de los editores existentes.
Neovim / vim es ligeramente más rápido que emacs, notablemente más rápido que spacemacs.
En términos de experiencia de edición. Puedo decir fácilmente que los paquetes de emacs se sienten superiores. Creo que es porque se mezclan mejor con el núcleo de emacs.
Vimscript es agradable y, ciertamente, también hay grandes proyectos en el ecosistema vim. Lo bueno es que están mejor documentados que la mayoría de los proyectos de emacs que he visto hasta ahora.
Ambos pueden tener fallas dependiendo del paquete que esté utilizando. Los Spacemacs tienden a congelarse, y los neovim tienden a mostrar mensajes de error de miedo, así que elige tu veneno allí.
La edición modal en vim no es un concepto intuitivo, pero una vez que te acostumbras, lo quieres en cualquier momento. Ambos del editor proporcionan eso.
fuente
Ejecución de pulsación de tecla ::: vi edición retiene cada permutación de teclas escritas. Esto crea una ruta en el árbol de decisión que identifica inequívocamente cualquier comando, mientras que los comandos de Emacs son una combinación de teclas escritas que se ejecutan 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 una gran cantidad de características, ya que es esencialmente un entorno de ejecución para un programa Lisp diseñado para la edición de texto.
fuente
vim es un editor útil, simplemente escribe
vim filename
para abrir el archivo, editar, guardar y cerrar.emacs es un "sistema operativo" que pretende ser un editor, puede
eval
codificar para cambiar su comportamiento y extenderlo a su gusto. UNAmode
para recibir / enviar correos electrónicos en emacs es como un software de correo electrónico en el sistema operativo.Cuando hago una edición simple, por ejemplo, modifico un archivo de configuración, uso vim .
De lo contrario, nunca dejo emacs .
fuente
Creo que la principal diferencia es el objetivo del diseño. VIM es para UNIX como editor de trabajo. Emacs es para hackers GNU y lisp, por lo que tiene un elemento de diseño mixto.
Yo uso vim en mi estación de trabajo, mientras que también amo los emacs.
fuente
Soy fanático de Emacs pero aliento a otros desarrolladores a aprender VI porque:
He notado varios comentarios sobre VIM que comienzan más rápido que emacs. Si realmente le importa, ejecute 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 desea editar. En MacOSX, emacsclient es solo 33K mientras que emacs es 287M.
No estoy seguro de que nada de esto sea necesario en el hardware moderno. En mi MacBook Pro (Retina 2013), emacs se carga casi instantáneamente cuando lo ejecuto desde el shell. No detecto ninguna pausa en absoluto. Cuando ejecuto Emacs.app (la versión de la GUI), puede tomar 3 segundos.
La mayoría de las quejas que escucho sobre emacs parecen provenir de personas mal informadas sobre emacs. Habiendo usado tanto vi como emacs desde 1982, definitivamente recuerdo un momento en que emacs se cargó mucho más lento que vi y usó la mayor parte de la memoria física en mis primeros cuadros de UNIX, pero ese ya no es el caso y no ha sido por 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, a mi meñique le duele un poco el acceso repetido a la tecla Control para la grabación de emacs. Esto es especialmente cierto en el teclado MacBook Pro, donde Control se mueve una posición hacia la derecha para dejar espacio para la tecla "fn". No es tan molesto cuando Control es la tecla inferior izquierda.
fuente
Primero fui usuario de vim, luego cambié a emacs, luego a vim, ahora estoy experimentando con emacs nuevamente.
Como desarrolladores, escribimos mucho y, por fin para mí, moverme en buffers y archivos son las tareas repetitivas más grandes, ¡así que quiero un editor donde PUEDO MOVERME RÁPIDO!
La motivación para volver a experimentar con emacs es que me caí Ctrl dirigió las teclas más rápido que vim, y es más fácil razonar.
En vim tienes modos, tienes modo de inserción, modo visual, modo normal, lo que sucede cuando presionas algo depende del modo en que te encuentres, es un enfoque con estado para la edición. Te mueves, ingresas en el modo de inserción, editas, sales del modo de inserción y vuelves a moverte. Con frecuencia me pierdo si pierdo una prensa ESC o algo así.
En emacs no hay modo, básicamente presionas Ctrl con tu rosa y escribes la tecla, como Cx Cf, Cx Cs, Cx Cc. Hay combinaciones de teclas en las que necesita liberar la tecla Ctrl, odio estas y siempre las reemplazo por otras con el control presionado.
Creo que el enfoque de emacs es más rápido para pensar y escribir, pero vim tiene otra fortaleza, para. Sus comandos son componibles, generalmente tienen un formato. Por ejemplo, para eliminar una línea que puede usar
dd
, para eliminar una palabradw
. Los complementos hacen uso de esa tala, con el complemento vim-surround puede eliminar las comillas con ds "(eliminar surround"), eliminar hasta el siguiente /dt/
. Eliminar hasta anterior /:dT/
y así sucesivamente. Entonces, mientras aprendes, las cosas conmovedoras comienzan a ser muy interesantes.En resumen, hoy me di cuenta de que las teclas de emacs son más rápidas para la edición de macros y los comandos vim son más potentes para la microedición
He estado usando vim durante los últimos cinco años, así que edito pensando principalmente en palabras, líneas, bordes, bloques, etc. Elimine esta línea, elimine comillas, reemplace comillas, elimine palabras en el cursor, estoy tratando de encontrar los emacs se mueve por eso
Como cita final, diría que me importa más fzf que emacs o vim, me encantaría tener un editor que esté completamente basado en fzf
fuente
En primer lugar, Vi (realización original) no se usa hoy. Lo que dices es una derivación de Vim.
Para ampliar la funcionalidad de Vim debe volver a compilar Vim, no Emacs.
Emacs tiene Vim en sí mismo (modo viper).
Emacs generalmente necesita instalación manual, Vim generalmente está preinstalado en todos los sistemas operativos tipo Unix (pero si tiene acceso ssh al modo de host vagabundo gane Vim :)
Si prueba Vim, odia a Emacs, así que comience desde Emacs primero.
Lea también http://www.dina.dk/~abraham/religion/vi-tutorial.html (enlace hacia abajo, así que use este )
Otra búsqueda en hxxp: //en.wikipedia.org/wiki/Editor_war
fuente