Editor de texto de terminal tipo nano que admite deshacer/rehacer, ajuste suave

Estoy buscando un editor de texto liviano que se ejecute en la terminal. Actualmente uso nano2.2.6, pero estoy un poco insatisfecho con él (particularmente el hecho de que no funciona para deshacer/rehacer).

Debe tener:

  1. Posibilidad de ejecutar en la Terminal.
  2. Tiempo de inicio rápido. Si es mucho más lento de nanolo que no será utilizable.
  3. Fácil personalización de pestañas/sangrado.
  4. Resaltado de sintaxis para los principales idiomas.
  5. Funcionalidad de deshacer/rehacer.
  6. No puede ser modal ( vimestá fuera a menos que haya una forma de usarlo con combinaciones de teclas en lugar de modos).
  7. Combinaciones de teclas personalizables para tareas comunes.
  8. Libre.
  9. Funciona en OSX.
  10. Admite el ajuste de línea suave (las líneas largas se ajustan visualmente pero no con nuevas líneas).

Es bueno tener:

  1. Posibilidad de usarlo en lugar de un localizador (es decir less).
  2. Capacidad para hacer sangría inteligente.
  3. Multiplataforma.
  4. Posibilidad de instalar a través de MacPorts.
  5. Capacidad para hacer una edición de código más elegante similar a IDE:ingrese la descripción de la imagen aquí

Usaré el editor principalmente para editar scripts de shell, pero también podría usarlo para codificar Java, escribir Markdown, escribir html/javascript, etc.

Nota: Lo he intentado emacsy falla estos dos requisitos para mí:

  1. Tiempo de inicio rápido. Si es mucho más lento de nanolo que no será utilizable.
  2. Fácil personalización de pestañas/sangrado.
¿Has intentado iniciar emacs con emacs -q? ¿Sigue siendo lento?
@Timmy, sí, lo he intentado. Todavía es muy lento para mí. Tal vez estoy haciendo algo mal, pero he intentado muchas cosas para acelerar emacsy ninguna ha llegado al tiempo de inicio de nano.

Respuestas (7)

EMPUJE

( vimestá fuera a menos que haya una forma de usarlo con combinaciones de teclas en lugar de modos).

Curiosamente, una vez que realmente pensé en esto, me di cuenta de que esa vimes la respuesta.

vimtiene todos los "imprescindibles" y "buenos para tener":

  1. Posibilidad de ejecutar en la Terminal.
  2. Tiempo de inicio rápido. Si es mucho más lento que nano, no será utilizable.
  3. Personalización relativamente fácil de tabulaciones/sangrados.
  4. Resaltado de sintaxis para los principales idiomas.
  5. Funcionalidad de deshacer/rehacer.
  6. No puede ser modal (vim está descartado a menos que haya una forma de usarlo con combinaciones de teclas en lugar de modos).
  7. Combinaciones de teclas personalizables para tareas comunes.

Estaba preocupado por los números 6 y 7, pero resulta que puede comenzar vimen el modo de inserción y personalizar los atajos de teclado del modo de inserción. Además de eso, tiene un atajo + vimincreíblemente útil que le permite ejecutar un solo comando en el modo de inserción. La combinación de estos dos le permite asignar comandos modales a métodos abreviados de teclado similares (p. ej ., ).Ctrlovimnanoinoremap <C-u> <C-o>P " map vim paste to nano's [Ctrl]+[u] paste keyboard shortcut

  1. Libre.
  2. Funciona en OSX.
  3. Admite el ajuste de línea suave (las líneas largas se ajustan visualmente pero no con nuevas líneas) .

Es bueno tener:

  1. Posibilidad de usarlo en lugar de un localizador (es decir, menos).
  2. Capacidad para hacer sangría inteligente.
  3. Multiplataforma.
  4. Posibilidad de instalar a través de MacPorts.
  • macvim
  1. Capacidad para hacer una edición de código más sofisticada similar a IDE.*

Además de todo esto, vimtiene una documentación increíble de un montón de programadores (diablos, incluso tiene su propio sitio SE ), toneladas de funciones y es muy personalizable. Recomiendo encarecidamente piratear vimpara que funcione así si tiene requisitos similares. Puede parecer un sacrilegio para los vimexpertos, pero se ajusta perfectamente a mis requisitos.

* No sé si tiene la función que se muestra en la pregunta, pero ciertamente tiene muchas funciones de edición similares a IDE.

Emacs

Posibilidad de ejecutar en la Terminal.

emacsclient -nw

Además, si desea eso porque está editando archivos en una máquina remota en la que ha iniciado sesión a través de SSH, hay otra manera: abra los archivos remotos en su sesión local de Emacs . Para editar archivos a los que se accede a través de SSH, escriba hostname.example.com:/path/to/fileal abrir el archivo. Consulte el manual para un uso más avanzado.

Tiempo de inicio rápido. Si es mucho más lento que nano, no será utilizable.

Eso es lo que está haciendo mal: está iniciando una nueva instancia de Emacs cada vez que edita un archivo. Emacs fue diseñado para que usted inicie Emacs de una vez por todas, y cuando desee abrir un archivo, lo abra en la instancia en ejecución. Llame emacsclient -nwpara iniciar una interfaz con Emacs que ya se está ejecutando en la terminal actual. Ejecute emacs --daemoncomo parte del inicio de su sesión, o ejecute emacsclient -a '' -nw …para decirle a emacsclient que inicie Emacs si aún no lo ha hecho.

Fácil personalización de pestañas/sangrado.

Emacs tiene muchas funciones para configurar la sangría . La personalización avanzada tiende a depender del idioma. Nunca he tenido problemas para hacer que Emacs siga la sangría. "Fácil" es subjetivo, pero si está haciendo algo que es posible con cualquier editor, dudo que sea difícil en Emacs, como mucho, si es un estilo muy inusual que no es compatible con Emacs. el cuadro configurando algunas variables, debería poder obtener ayuda para hacerlo bien con unas pocas líneas de Elisp.

Resaltado de sintaxis para los principales idiomas.

Emacs le da el extraño nombre font lock .

Funcionalidad de deshacer/rehacer.

Seguro _ De forma predeterminada, no hay "rehacer", pero puede deshacer una operación de deshacer. Hay paquetes para proporcionar una interfaz de deshacer/rehacer más familiar, árboles de deshacer , etc.

No puede ser modal (vim está descartado a menos que haya una forma de usarlo con combinaciones de teclas en lugar de modos).

Emacs puede emular a Vi pero no es necesario que lo haga.

Combinaciones de teclas personalizables para tareas comunes.

por supuesto Y macros y así sucesivamente.

Libre.

Un niño del cartel del movimiento GNU . Basta de charla.

Funciona en OSX.

Emacs para Mac OS X , Aquamacs , etc.

Admite el ajuste de línea suave (las líneas largas se ajustan visualmente pero no con nuevas líneas).

Modo de línea visual

Posibilidad de usarlo en lugar de un localizador (es decir, menos).

Se ha hecho más de una vez . Nunca he intentado. Lo que puede hacer en su lugar es ejecutar comandos de shell dentro de Emacs, lo que le brinda paginación de forma gratuita. Emacs también tiene una forma nativa de leer páginas man, navegar por la web, etc.

Capacidad para hacer sangría inteligente.

Ver sangría arriba. Emacs se puede configurar para sangrar automáticamente en varias situaciones oa pedido; esto tiende a depender del tipo de archivo, así que no entraré en detalles.

Multiplataforma.

Unix, OSX nativo (ver también OSX arriba), Windows , MS-DOS , Android iOS a través de Cydia y algunos más.

Posibilidad de instalar a través de MacPorts.

Controlar

Capacidad para hacer una edición de código más elegante similar a IDE:

Fuera de la caja, obtiene sangría, resaltado de sintaxis, búsqueda de identificador, plegado. Hay muchos paquetes adicionales que brindan características adicionales; CEDET es un buen comienzo.

mcedit

mcedites un editor de texto multiplataforma y con todas las funciones que viene incluido con Midnight Commander .

  1. Se puede ejecutar en la terminal, usando el comando mcedit, o presionando F4dentro de Midnight Commander
  2. Tiene un tiempo de inicio rápido
  3. Tamaño de pestaña personalizable. Cambiando la variable editor_tab_spacingen el archivo de configuración ( ~/.config/mc/ini)
  4. Resaltado de sintaxis para muchos idiomas, que se encuentra en el Optionsmenú
  5. Funcionalidad de deshacer/rehacer
  6. No modal, utiliza combinaciones de teclas
  7. Puede grabar y guardar macros y repetir comandos simples. No creo que pueda personalizar las combinaciones de teclas originales, pero podría crear otras nuevas y usarlas en su lugar.
  8. Gratis (GNU)
  9. Funciona en OSX
  10. Soporta ajuste de línea. Personalizable usando las variables editor_word_wrap_line_length, editor_option_typewriter_wrapywrap_mode

Editar:

Como se discutió en los comentarios, el ajuste de línea agrega interrupciones, por lo que no cumple con el requisito de ajuste de línea suave. El visor que lo acompaña mcviewadmite este tipo de envoltorio, pero sin funcionalidades de edición.

ne hace mucho de esto.

Cosas de las que estoy seguro:

  1. se ejecuta en la terminal
  2. Se inicia casi al instante
  3. Combinaciones de teclas completamente personalizables
  4. Deshacer/rehacer opcional
  5. Libre
  6. Se compilará en OS X, y no me sorprendería si está disponible en MacPorts

No estoy seguro:

  • Fácil personalización de pestañas/sangrado
  • Cómo maneja los saltos de línea
  • Tiene resaltado de sintaxis personalizable, pero no estoy seguro de si son predeterminados
Parece que neno es compatible con "softwrapping" . Sin embargo, parece tener alguna forma de personalizar las pestañas y las sangrías ( Ctrl+ f: TabSize para encontrarlo en la página vinculada ).

JOSÉ

joetiene todos los "imprescindibles" excepto el envoltorio suave (hasta donde yo sé):

Debe tener:

  1. Capacidad para ejecutarse en la Terminal (ya través de MacPorts).
  2. Tiempo de inicio rápido. Si es mucho más lento de nanolo que no será utilizable.
  3. Fácil personalización de pestañas/sangrado.
  4. Resaltado de sintaxis para los principales idiomas.
  5. Funcionalidad de deshacer/rehacer.
  1. No es modal.
  1. Combinaciones de teclas personalizables para tareas comunes.
  • En realidad, tiene un nanomodo similar con combinaciones de teclas familiares al comenzar con el comando joealternativo .jpico
  1. Libre.
  2. Funciona en OSX.
  • joees multiplataforma.
  1. Admite el ajuste de línea suave (las líneas largas se ajustan visualmente pero no con nuevas líneas).

joees realmente muy bueno y lo recomiendo para cualquier persona que quiera una versión con más funciones nano(siempre y cuando no te importe el softwrapping).

En 2018, la respuesta a esta pregunta es: ¡nano! Marca todas las casillas. Ahora (septiembre de 2018) en la versión 3.0, han seguido mejorando la funcionalidad y la base de código, ¡y siguen haciéndolo! Además de deshacer, ahora también tiene grabación de macros clave. Para mi uso (y también suena como el uso de OP), muchas combinaciones de teclas necesitan redefinirse y cambiar la configuración predeterminada, pero hágalo en ~/.nanorc o globalmente en /etc/nanorc y Bob es su tío en los próximos años..!

Acabo de descubrir que nano tiene una envoltura suave. Actualmente estoy usando jed (anteriormente ne, pero no maneja bien UTF-8), y jed es muy poderoso, pero si agrega "set softwrap" en su ~/.nanorc, le permitirá usar softwrap (y redefine la mayoría de las teclas y configura muchas otras opciones). Nunca volveré a nano, pero en una nueva instalación a menudo se incluye. Todavía instalo ne porque apenas necesita configuración. Desafortunadamente, jed requiere toneladas de configuración para mí (al igual que joe).