¿Qué es neovim? ¿Cómo es diferente de Vim? ¿Y por qué debería importarme?


118

He estado escuchando sobre Neovim ; ¿Cómo se diferencia de Vim? Todos los puntos en la página de inicio son solo cambios arquitectónicos 'bajo el capó'. Como usuario, ¿cuál es la diferencia para mí?


1
La característica asincrónica es un salvavidas. Hace que vim sea mucho más fluido y muchos complementos pueden aprovecharlo.
tommyip

Tutor mejorado. Se ve diferente.
Fernando Rodriguez

"Un sitio web atractivo, eso es algo que Neovim hizo bien". - Bram Moolenaar de la entrevista
michael

Algunas de las opciones básicas parecen extrañas e irrelevantes para los objetivos principales ... Muchas se sienten como alguien a quien no le gusta el código antiguo y quiere hacerlo "bien". Estoy de acuerdo en que el código antiguo es feo. Pero tomará mucho esfuerzo hacer una nueva implementación. Es muy parecido a lo que le sucedió a Elvis: una reescritura iba a mejorarlo mucho, pero tomó tanto tiempo, durante el cual Vim agregó más funciones, que eventualmente no hay tantos usuarios de Elvis. Y el Elvis reescrito puede tener un buen código, pero los usuarios no lo notan. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Espero que las cosas bonitas que NeoVim crea puedan volver a agregarse a Vim. Quiero decir, ¿quién no quiere un mejor soporte de complementos, una mejor GUI e integración? La gran pregunta es cómo hacer eso y quién lo va a implementar adecuadamente. binpress.com/vim-creator-bram-moolenaar-interview
NeilG

Respuestas:


81

Tal como se describe en la página de inicio de neovim, el objetivo de neovim es allanar el camino para un proyecto de código abierto mejor y más abierto impulsado por la comunidad.

Los cambios arquitectónicos no solo traerán más estabilidad y mejorarán el rendimiento de vim, sino que harán que el código sea mucho más fácil de mantener y reducirán ligeramente la barrera de entrada para cualquiera que esté interesado en contribuir.

Uno de los cambios clave también incluye la característica principal de acceso a la ejecución de trabajos / tareas de forma asincrónica en vim, que ha sido una de las características más solicitadas de vim desde hace mucho tiempo. Esto puede ayudar a mejorar aún más el rendimiento de vim, especialmente porque vim no tendrá que bloquear mientras un trabajo en segundo plano está haciendo algo.

Como usuario de vim, no puede cambiar mucho además del hecho de que neovim debería crecer como software mucho más rápido (solucionar problemas, agregar funciones) en comparación con vim de stock y que tendrá un rendimiento mucho mejor a largo plazo.


24
+1. Permítanme agregar también que el hecho de que habrá muy pocos cambios visibles para el usuario es algo bueno.
carlosdc

27
Esto se lee como una repetición de un comunicado de prensa en lugar de un resumen real de por qué alguien debería preocuparse. Por ejemplo, he estado usando vim durante dos décadas y no puedo recordar la última vez que el programa principal me mostró algún tipo de inestabilidad, ¿por qué debería preocuparme por "más estable"?
Caleb

2
Las tareas asincrónicas deberían significar que ya no se debe bloquear la interfaz de vim para hacer un trabajo que podría estar en segundo plano.
alxndr

3
¿Hay alguna evidencia en los dos años de que Neovim ha estado activo que está creciendo más rápido y tiene un mejor rendimiento?
Sparhawk

8
Ya no es cierto que Vim no tiene soporte para ejecutar trabajos en segundo plano de forma asíncrona.
Rico

36

Me dirijo específicamente a:

¿Por qué debería importarme? Como usuario, ¿cuál es la diferencia para mí?

Lo que más me entusiasma como usuario de Vim son los nuevos tipos de complementos, integraciones e interfaces que serán habilitados por los cambios bajo el capó de Neovim.

A medida que pase el tiempo, comenzará a ver complementos y programas realmente impresionantes que funcionan con Neovim pero no con Vim. Hay una lista de complementos específicos de Neovim: aquí en github de neovim .

No sé qué tan actualizado está, pero estoy emocionado de verlo crecer a medida que obtenemos más herramientas para hacer que la codificación sea más eficiente y agradable.


15

Mi propia adición favorita que Neovim trae a la mesa es el modo terminal. ¡Ahora puede dividir su ventana de Neovim y tener un emulador de terminal ejecutándose en un lado y estar editando un archivo en el otro lado! Supongo que incluso podrías ejecutar Neovim dentro de sí mismo ahora, en caso de que realmente quisieras hacerlo.

Tener complementos asincrónicos también será extremadamente útil pronto; Esto significa que finalmente podemos tener una muy buena terminación del código, ¡después de solo 40 años de espera!

Neovim también tiene mejor soporte para mouse que Vim.


2
Deberían llamarlo Metavim: P
Tumbler41

No conozco ningún cambio específico del mouse que tenga Neovim que lo haga mejor que Vim.
jamessan

Lo que viene a la mente en este momento es que puedes estar en una sesión de terminal ssh, abrir Neovim y hacer clic en un lugar para editarlo. ¡No creo que Vim pueda hacer eso, aunque es posible que todavía no tenga un .vimrc lo suficientemente grande! Sin embargo, supongo que esto podría denominarse mejor como soporte ssh que soporte para mouse.
Johnathan Andersen

Definitivamente es posible usar el mouse en Vim a través de una conexión SSH (lo acabo de probar), pero si no pudo hacerlo funcionar en Vim y funciona de manera predeterminada en NeoVim, supongo que es un punto de datos a favor de su declaración de que el El soporte en NeoVim es mejor;).
Rico

1
He estado usando el mouse en Vim regular sobre SSH de Putty ejecutándose en Windows con una sola set mouse=alínea en vimrc durante bastante tiempo
Thunderbeef

5

Dos puntos que otras respuestas aún no abordan y que pueden ser interesantes para un usuario, incluso o especialmente para usuarios nuevos sin un archivo de configuración (o con un archivo pequeño):

  1. NeoVim qué no tratar de ser compatibles Vi por defecto. Cambiaron muchos valores predeterminados para la configuración y están discutiendo activamente dichos cambios: # 2676 , # 6289
  2. Puede integrarse en otro proceso (¿recuerda la integración de netbeans ?) Y tiene muchas GUI diferentes, por lo que MacVim ya no es la GUI más sofisticada que puede encontrar para su $EDITOR.