¿Qué editor puedo usar como una alternativa simple de vi / vim?


17

Soy un usuario de Windows que viene a Ubuntu's Bash gracias a WSL . Ahora necesito editar algunos archivos y realmente odio Vi. ¿Debo lidiar con eso o hay una alternativa más simple?

Las características que estoy buscando son:

  • Basado en CLI
  • fácil de usar (escribir y editar debe ser similar al Bloc de notas)
  • capacidades de edición simples son suficientes

Intentaré dominar Vim, ¡pero necesito hacer una edición rápida ahora mismo!


Es una cuestión de opinión. Los principiantes usan nano howtogeek.com/howto/42980/… . vim (vi mejorado) tiene una pequeña curva de aprendizaje, pero es muy potente: consulte linux.com/learn/vim-101-beginners-guide-vim o cualquier guía de vim o el tutorial de vim, vimtutor (incluido en vim)
Panther

Tenga en cuenta que esta pregunta podría cerrarse como bastante basada en la opinión. Es posible que desee reformularlo para que se ajuste a las reglas del sitio (por ejemplo, ¿qué puedo usar como alternativa a vim?)
Andrea Lazzarotto

3
Votar para cerrar esto como una pregunta basada en la opinión. Un consejo: comience con nano y luego haga la transición a vim con pasos de bebé. Pagará a largo plazo porque vim está en cualquier sistema Linux básicamente
Sergiy Kolodyazhnyy

1
Como seguimiento a mi comentario, el título actual aún es discutible y podría llevar a un cierre. La gente podría considerar que vim en sí mismo es "bueno", y esto es subjetivo. ¿Puedo sugerir usar la palabra "más fácil" en su lugar? También especificar algunas características deseadas podría ayudar a reducir la pregunta.
Andrea Lazzarotto

2
@Jos estamos hablando de WSL donde se pueden ejecutar programas de GUI pero no es trivial. Además, la pregunta no existiría para los editores de GUI porque todos son más fáciles que vim.
Andrea Lazzarotto

Respuestas:


24

Si está buscando un editor alternativo, no está solo. Básicamente, la vida es demasiado corta para aprender viy digo que esto es un desarrollador de software para ganarse la vida. Sin embargo, debe aprender a salir porque es un problema para uno de cada 20k programadores . También vale la pena aprender a realizar algunas operaciones básicas de agregar / insertar, porque en algunos servidores obstinados no encontrará ningún otro editor.

Ahora, la respuesta a su pregunta es probablemente nano.

Si está ejecutando algún script de compilación automatizado, utilizando gito ejecutando otros comandos, podrían abrirse vimsin que lo desee. Puede evitar esto ejecutando lo siguiente antes de continuar:

export EDITOR=nano

1
¡Gracias! punto extra para la EDITORpropina
sebagomez

3
"Básicamente la vida es demasiado corta para aprender vi". No es necesario pasar toda la vida, aunque uno puede si aman vim. Pasé 2 horas viendo un buen tutorial en YouTube, y seguí practicando lo básico que aprendí del video. Ahora el 70% de todas mis respuestas en Ask Ubuntu están escritas en vim.
Sergiy Kolodyazhnyy

77
Sobre "la vida es demasiado corta", pensé que este ensayo tenía un buen punto. Uno de los obstáculos más grandes (artificiales) en el aprendizaje de Vim es la falsa premisa de que necesitas sumergirte de inmediato para convertirte en un usuario "núcleo duro". Usted no Utiliza las las teclas de flechas. Use los accesos directos de la GUI para copiar / pegar. Pasar el rato en modo insertar. Ignorar pestañas y registros y campanas y silbatos (por ahora). Es relativamente rápido llegar a la funcionalidad de nivel nano en Vim, y puede agregar lentamente funciones avanzadas más adelante, según las necesite.
RM

Atajos de @RM GUI?
Andrea Lazzarotto

1
@Sergiy vim tiene sentido si desea utilizar funciones avanzadas. Si tuviera que usar vim como uso nano, seguiría usando nano (de hecho, lo hago ... uso vim cuando estoy en un servidor en el que no puedo agregar software, como la máquina de un cliente).
Andrea Lazzarotto

11

Es una cuestión de opinión.

Los principiantes usan nano .

vim ("vi mejorado") tiene una pequeña curva de aprendizaje pero es muy potente. Consulte esta guía para principiantes para vim o cualquier otra guía de vim o el tutorial de vim vimtutor(incluido en vim).

Por ahora sugiero altamente nano

nano -B /path/to/file/to/edit

-B hace una copia de seguridad

Los comandos se emiten con la tecla de control y se enumeran en la parte inferior de la ventana del editor.

Hay una guía sobre resaltado de sintaxis, consulte: ¿Cómo habilito el resaltado de sintaxis en nano?

nano

emacses una alternativa a la vez vimy nano, y tiene muchos beneficios. emacsEs más complejo que nano. Puedes ver el recorrido de emac .

Solo para completar, los temas vim + como Zenburn pueden ser bastante útiles

Zenburn


2
No solo principiantes, básicamente todos los humanos que no quieren entrar en las guerras vim vs emacs. : P
Andrea Lazzarotto

1
+1 Yo también
usaría

Bueno, para ser justos, puedes crear un tema vim y un .vimrc recorre un largo camino. vim y emacs tienen funciones avanzadas que no están disponibles en nano, pero es un desperdicio si no utiliza las funciones avanzadas. Para ediciones básicas rápidas, uso nano, aunque en general soy un fanático de vim. kippura.org/zenburnpage
Panther

1
Aprender vi/vim. :) Está en todos los dispositivos nix. :) Lo básico no es tan difícil.
prófugo

3
"emacs es más complejo que nano". : p esto podría ser la subestimación del año.
Daniel Jour

3

como usuario de Windows, después de intentarlo vimy nanodescubrí que necesito algo intermedio, en cuanto a complejidad así que intenté abofetear y era lo que estaba buscando.

imagen de bofetada

slap es un editor de texto basado en un terminal tipo Sublime que se esfuerza por facilitar la edición desde el terminal.


instalación:

curl -sL https://raw.githubusercontent.com/slap-editor/slap/master/install.sh | sh

1
Olvidó mencionar el principal punto de venta, soporte de mouse de primera clase (incluso a través de una conexión SSH)
blueray

2

¿Alguna vez te has sentido frustrado porque tu editor de texto no estaba haciendo lo que querías? Enfadado porque no puedes recordar ...

  • ... cómo encontrar ayuda?
  • ... qué: wq significa?
  • ... ¿Alguna de las palabras que leíste como estudiante?

¡Un mundo pequeño y valiente espera!

Si bien abogamos por nuestros editores de texto ligeros favoritos, permítanme recomendar el excelente, pequeño y rápido xo(exofrills) .

Es un solo archivo de Python 3, y tiene un buen soporte para resaltar la sintaxis a través de Pygments (aunque no es perfecto con los que no son Python):

ingrese la descripción de la imagen aquí

También tiene combinaciones de teclas extremadamente simples y útiles que pueden cambiarse fácil y fácilmente al contenido de su corazón:

ingrese la descripción de la imagen aquí

Otras características:

  • ¡Menos de 850 líneas de código en un solo archivo!
  • Resaltado de sintaxis!
  • Expresión regular que coincide y reemplaza!
  • Historial de búsqueda de almacenamiento en caché!
  • WTFPL con licencia!
  • ¡Completamente personalizable!
  • ¡Comience en ubicaciones que no sean de origen!
  • ¡Salta entre palabras en una línea!
  • ¡Salta a cualquier parte del archivo!
  • ¡Inserción completa de archivos!
  • Principiante amigable - ¡tal vez eres nuevo en las palabras!
  • Copiar y pegar texto!
  • Estado de línea y columna!
  • ¡Solo una fila de espacio de edición sin texto!
  • ¡Ahorro y carga!

La fuente Python3 está en github , y puede instalarlo más fácilmente usando:

sudo apt install python3-pip
sudo pip3 install exofrills 

exofrills: su texto ha sido editado ... pero todavía tiene hambre.

Descargo de responsabilidad: de ninguna manera estoy afiliado al proyecto exofrills.


1
Esto se ve muy bien, +1 de mi parte. Aunque esa cantidad de signos de exclamación es inquietante. : P
Andrea Lazzarotto

0

Si bien no puedo negar que yo también luché con vi al principio, creo que se puede argumentar que vi es realmente muy simple de aprender. (Cuando comencé a usar Unix, la opción era vi o emacs, así que en el momento en que elegí ed, ed era un editor de líneas muy simple, que ya había aprendido al leer los primeros libros de texto de Unix). Uso vi diariamente, pero probablemente use solo un subconjunto muy pequeño de sus características.

Aquí hay un argumento para usar vi: vi existe en todos los sistemas, usa muy pocos recursos y puede usarse en conexiones inestables y lentas, donde otros editores pueden fallar o ser lentos e inutilizables. O en situaciones en las que el sistema no funciona, por lo que las teclas de flecha no se interpretan correctamente (por ejemplo, una configuración incorrecta de terminfo). Por lo tanto, vi se puede utilizar para reparar los archivos de configuración que conducen al problema, sin verse afectados por el problema.

Y aquí está cómo aprender un subconjunto útil de vi: Primero: deje de pensar en vi como un "editor" interactivo de terminal GUI, y véalo como un lenguaje de programación para manipular archivos de texto. Al principio, "vi" representaba el modo visual, y vi tiene una contraparte no visual ex, que es un buen lugar para comenzar. Escriba ex en el símbolo del sistema (usaré ¬ para representar el retorno):

$ ex¬
Entering Ex mode.  Type "visual" to go to Normal mode.
:

Ahora presiona enter.

:¬
E749: empty buffer
:

Entonces, pongámosle algo. Escriba "a¬", y escriba una línea de texto, luego un punto en una línea por sí mismo:

:a¬
Hello World¬
.¬
:

Ese fue el comando agregar. Fácil, corto y mnemónico. Pero sería bueno ver qué hay en el búfer:

:%p¬
Hello World
:

Ese fue el comando de impresión, p, obviamente. El% es una abreviatura de rango de línea. Cada comando puede estar precedido por un número de línea o rango al que debe aplicarse el comando. % significa "todas las líneas". $ significa la última línea, y un punto significa la línea actual. Un número significa esa línea particular. Un rango se escribe n, my se puede sumar o restar un número, por lo que. + 1, $ - 1 significa desde la siguiente línea hasta la penúltima línea. Un comando que consta de solo un número de línea va a esa línea. Aquí está el pequeño subconjunto restante de comandos que uso:

:1i¬
this text is inserted before line 1.¬
.¬
:

:w /tmp/filename¬
"/tmp/filename" [New] 2L, 49C written
:

w escribe todas (o el rango elegido de) líneas en un archivo.

:1d¬

elimina la línea 1.

:.s/Hello/Hello,/¬
Hello, World
:.s/$/!/¬
Hello, World!

s sustituye una expresión regular. ¡Es bueno saber expresiones regulares!

:q¬
E37: No write since last change (add ! to override)

q se cierra. wq escribe y se cierra. q! se cierra sin escribir, y en una línea similar, w! fuerza una escritura en un archivo si es posible.

Ahora uno genial:

:p
Hello, World!
:.!tr a-z A-Z
:p
HELLO, WORLD!

! como un comando filtra las líneas en un comando de shell.

Y finalmente:

:vi¬

entra en modo VISUAL. No te dejes engañar. Parece un editor, pero sigue siendo solo una consola de programación interactiva. Solo tienes que mirar el búfer todo el tiempo y algunos comandos más. En modo visual a: muestra el indicador: del modo ex. Las teclas de flecha (si funcionan) se mueven, y si no lo hacen, entonces hjkl lo hace. h izquierda, j abajo, k arriba y l derecha. 0 se mueve al primer carácter y ^ (¡piense en expresiones regulares aquí!) Al primer carácter no espacial en la línea. $ (regex de nuevo!) se mueve al final de la línea. Mecanografía: 999¬ va a la línea 999, naturalmente, al igual que en el modo ex.

"i" ingresa al modo de inserción, que ahora se inserta en caracteres en lugar de líneas, y termina presionando escape en lugar de ".¬". "I" se inserta al principio, "a" después del carácter debajo del cursor y "A" después del final de la línea actual. Siempre presione escape cuando termine de escribir texto. "x" elimina el carácter debajo del cursor y "D" elimina del cursor al final de la línea. "Y" tira (copia) la línea actual y "P" la pega de nuevo. ": pu" hace lo mismo, pero puede ir precedido de un número de línea. ": ya" es el ex equivalente de "Y", y de nuevo, útil para aplicar a un rango de línea. Creo que también hay un comando de marca, pero admito que no lo recuerdo. No me lo pierdo

Lo anterior es lo que uso, y sé que probablemente no soy un usuario vi muy "eficiente". Por otro lado, uso la versatilidad de ex, por ejemplo, para editar archivos de configuración de script. ¿Necesita cambiar su nombre de host foo.bar.com a www.foobar.com en varios archivos conf?

for file in conf/*
do (echo "%s/foo.bar.com/www.foobar.com/" ; echo "wq") |ex $file ; done

Lo que intento decir es que creo que el problema con vi es que la gente lo considera un editor difícil. Todo lo que se necesita es cambiar un poco su mentalidad y verlo como un lenguaje de programación interactivo muy simple pero también muy poderoso. Tan poderoso que incluso con un subconjunto de los comandos disponibles, puede usarlo con gran efecto, no solo como editor, sino como una herramienta general con secuencias de comandos bien integrada con el resto de Unix. Dudo que nano haga todo esto, emacs ... tal vez.


3
Lo siento pero ... esto no responde la pregunta. OP solicitó una alternativa a vim y las respuestas deberían proporcionarla.
Andrea Lazzarotto

1
Elogio el trabajo que pusiste en esta respuesta, pero en realidad no responde la pregunta: un tutorial y enchufar vim no pertenece aquí en absoluto, pero sí pertenece a tu blog.
gato

Esta respuesta es exactamente por qué tanta gente está pidiendo una alternativa a los viemacs: cuanto más decimos que son desagradables de usar, más los conversos insisten en que nos esforzamos más por usarlos.
Shukri Adams

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.