¿Hay casos en los que vi es la única opción?

22

¿Hay escenarios en los vique la única opción para crear, editar o modificar un archivo en un entorno Ubuntu?

Básicamente, mi pregunta es saber realmente si existe un caso en el que me vería obligado a usarlo viporque sería la única opción disponible en un caso particular en el ecosistema de Ubuntu.

Podría existir un caso particular en el que de alguna manera no tendrían acceso a otras opciones como nano, picoo simplemente enviar la información con herramientas como cat, sed, teey más?

Supongo que esto es más un servidor o un lado de la nube, ya que en el escritorio hay muchas más opciones, pero a cualquiera que use mucho el terminal le pregunto:

¿Existe tal caso?

Luis Alvarado
fuente
8
@Tim En realidad visudopuede usar cualquier editor. Como su configuración predeterminada en Ubuntu respeta las variables de entorno EDITORy VISUAL, puede ejecutar sudo env VISUAL=emacs visudoemacs o incluso gksudo env VISUAL=gedit visudoun editor gráfico como Gedit. ( sudo -Ho sudo -ipuede usarse en lugar de gksudo). Sugiero de esta envmanera, ya VISUAL=emacs sudo visudoque no funcionará ( sudorestablece la mayor parte del entorno) y sudo -EH podría considerarse desaconsejable.
Eliah Kagan
3
vi es la única opción ... cuando vi es el único editor instalado que conoce y no desea perder tiempo instalando otro. vi es la mejor opción cuando vi es el editor que más conoce / le gusta entre los disponibles y no desea perder tiempo instalando uno que le guste más. NUNCA hay un caso en el que solo una herramienta pueda resolver un problema; Puede haber ocasiones en que las opciones sean limitadas. Y a algunas personas realmente les gusta vi. (Yo no. Soy un fanático de Emacs. Aunque puedo tolerar muchos editores.)
keshlam
3
cat? sed? De Verdad? virealmente no es tan complicado, y si realmente no puede molestarse en aprenderlo, solo tiene que recordar dos modos (modo Normal e Insertar). Mueve el cursor con flechas (o HJKL si no está disponible), presiona "i" para comenzar a editar (modo de inserción). Una vez que haya terminado, presione "Esc" para volver al modo normal. Escriba ": wq" para guardar y salir (Escribir + Salir).
sleblanc
2
simplemente hágalo y aprenda vi :) No es tan difícil como parece y una vez que lo sepa, nunca perderá el tiempo buscando otros editores en ningún sistema nuevo que use.
JamesRyan

Respuestas:

32

Dentro del ecosistema de Ubuntu , no creo que este caso pueda existir , ya vique al menos sería un vim-tiny, que ya es un "real vim" lejos de ser "real vi".

En el contexto de los sistemas integrados con recursos limitados , que normalmente no son Ubuntu, es posible que solo tenga viun enlace busybox. Y no queda espacio. Entonces, vies la única opción.

Aparte de eso, creo que las situaciones en vilas que la única opción no son muy comunes hoy en día, incluso fuera del mundo Linux .

Pero fácilmente puede haber situaciones en las que vies la única opción que puede planificar , la única opción que seguramente existirá en alguna situación futura, lo que probablemente sucederá dentro de la sala de servidores demasiado fría de un cliente.

Imagine que lo llama un cliente:

Cliente: ¡Necesito arreglar esta configuración! ¡¡Ahora!! No sé cómo, pero puedo decirte dónde está el archivo de configuración. ¡¿¡Me puedes ayudar!?!

Usted: Ok, ¿en qué tipo de sistema se está ejecutando?

Cliente: Oh, está en el servidor foo, ahh ... se está ejecutando ... no recuerdo, algo con "ix" al final , o mayeb con "ux" ...

No hay problema, por ahora, ¡sabes que habrá vi!

Volker Siegel
fuente
1
Personalmente, he trabajado en varios sistemas integrados que contenían solo vi como editor de texto, creo que buildroot y yocto lo tienen como el único editor cuando se usan opciones de configuración mínimas. Es cierto que esto no es un problema en ubuntu, pero si usted es un desarrollador integrado, puede ser un problema real. Sin embargo, siempre puede, como dijo el OP, usar herramientas basadas en tuberías como sed, sort, grep y demás, sin embargo, esto puede ser muy doloroso.
Vality
El caso busybox es realmente bueno. Lo que es molesto es que no creo que sea un vi completo (al menos no fue hace una década, y espero que no lo hayan hinchado, incluso si es molesto).
hyde
1
busybox vison 4k líneas:; curl -s https://gitorious.org/busybox/busybox/raw/1c7a58dfb82ea04c525e0c19f94f2d800dee99e3:editors/vi.c | wc)
Volker Siegel
17

Vi nunca es la única opción; siempre puedes usar eden su lugar.

maldad
fuente
8
En Arch Linux, por ejemplo, edno es parte de base.
muru
@muru FWIW vimtampoco lo es.
Sparhawk
44
@Sparhawk vies.
muru
@muru Ah sí, por supuesto. Me estaba confundiendo a mí mismo.
Sparhawk
edEs solo una parte de la standard^instalación. Si realiza una minimalinstalación, edno está incluido.
Oli
13

Bueno, hay un caso en el que necesita el vieditor, supongamos:

  • no hay interfaz gráfica
  • estás en un extraño *nixsistema desconocido
  • su terminal se ve así:

ingrese la descripción de la imagen aquí

  • ya tienes suficientes tipos como este:

ingrese la descripción de la imagen aquí

Como puede ver, no hay teclado numérico . Con la edad vi(y me refiero a la tradicional originalvi , no vim, vim.tinyo vim.basic) se puede editar un archivo con este teclado. Sin teclas de flecha ? Sí, cuando se está en modo de comando que movió a través del archivo con h, j, ky l, como un profesional. hfue dejado, jestaba abajo, kestaba arriba y ltenía razón.

caos
fuente
55
Creo que esta respuesta en realidad no es tan mala (los teclados tipo máquina de escribir no son una cosa completamente improbable de encontrar), pero de hecho eso no significa que lo necesite vien particular. Todos los editores de texto anteriores tienen combinaciones de teclas de "copia de seguridad" que le permiten trabajar sin teclas de flecha, etc., aunque me atrevo a decir que vies el único editor en el que no se perderían las teclas de flecha.
Leftaroundabout
Algo fuera de tema: no veo por qué necesitaría un teclado numérico para cualquier editor de texto, y las teclas de flecha son inútiles en Vim de todos modos. : P
Pomo
1
¡Hey, no descartes lo bueno ed! ¡No hay necesidad de estos trucos "visuales" en un sistema como ese! Simplemente intente usar vim en la terminal de papel y vea cómo se las arregla ... Más en serio, saberlo edes útil de todos modos, es una opción decente cuando la edición necesita un script.
hyde
¿Cómo se cambia al modo de comando con ese teclado (no veo escape; ¿hubo otra combinación de teclas para eso?)
Foon
@Foon Hay una tecla de escape =) Es donde normalmente debería estar la pestaña. A la izquierda de la tecla Q.
caos
6

El hecho es que, en muchas distribuciones, a los editores les gusta nanoy picosimplemente no son estándar, mientras que otros paquetes, a saber, lo vim-tinyson. Vea aquí la lista de paquetes de ubuntu-minimal, vim-tinyes el único editor . Según esta respuesta, también parece ser el caso del servidor Ubuntu. Sé que este es el caso de Debian base, Fedora también.

Dicho esto, dado que si tiene nanoen su sistema, aún no he visto un caso en el que TENÍA que usarlo vi, pero, jugando con la respuesta de @ Volker, si está trabajando para un cliente y no tiene ¿acceso raíz? apt-get install nanono te va a hacer mucho bien (¡incluso si tiene acceso a internet externo!).

Mitch
fuente
4

Hay una serie de casos en los que vi(y con eso quiero decir, naturalmente, vim.tinyporque eso es lo que enviamos) podría ser el único editor interactivo. Si ignoramos las mariposas y los rayos cósmicos, estas parecen ser las ocasiones más probables en las que esto podría suceder:

  • Solo está utilizando el ubuntu-minimalmetapaquete base. Esto depende vim-tiny pero no de otros editores. Actualmente no puedo encontrar una manera de instalar Ubuntu sin la standard^tarea, pero puede eliminarla después de la instalación con:

    sudo apt-get remove $(apt-cache show standard^ | awk '/Package: / {print $2}')
    

    Tengo experiencia personal donde me han entregado una imagen del sistema sin la standard^tarea instalada. Si no hubiera tenido acceso a la red vihabría sido mi única opción.

  • Chrooting en un entorno que solo se mapeó a vitravés de

  • Destruye manualmente a todos los demás editores (y deshabilita los medios para reinstalarlos)

  • Romper manualmente el shell para detener editores conocidos, excepto para viser lanzado.

Una instalación verdaderamente mínima será la razón más probable, pero estos son bastante raros en estos días. Algunas compañías de VPS y de alojamiento en la nube los usan (para ahorrar espacio en disco tanto como cualquier otra cosa), pero sugeriría que definitivamente no son la norma.

Oli
fuente
Una respuesta asombrosa como siempre. Lo encuentro muy bien informado.
Luis Alvarado
2

En los casos en que no pueda instalar emacs, o en los casos en que necesite modificar un archivo de configuración para poder instalar emacs. :-pags

Craig
fuente
O en los casos en que desea utilizar un editor superior que sea mejor que emacs. ( cue flamewar ): P
Pomo
3
Seguramente, si está usando Ubuntu, entonces ya tiene un sistema operativo, por lo que emacs sería redundante: v
evilsoup
Hola, buen regreso. :-p
Craig
2

Muchas (¿la mayoría?) Solo tienen instalaciones Busy-Box vi.

No es específico de ubuntu, pero es cierto para muchos dispositivos integrados.

Nombre falso
fuente
2

Siempre hay gato, cabeza, cola ... así que no estoy seguro de que haya un sistema en el que no tenga ninguna alternativa, pero es posible encontrar sistemas en los que no hay una mejor alternativa, incluso si prefiere emacs.

Mi ejemplo fue un sistema que administraba una vez, que era tan lento (o la línea era lenta y con pérdidas) que, cuando navegaba con las teclas del cursor, a menudo cambiaba repentinamente para insertar e inyectar basura en el archivo editado, y usar HJKL para moverse Era la única opción confiable.

Edheldil
fuente
1
Y, por supuesto, ¡las viejas y buenas mariposas !
Leftaroundabout
2

Este es el caso donde vim es la única opción dentro del ecosistema Ubuntu: Ubuntu Snappyno viene con ningún editor de texto que no sea vim-tiny. Quizás en el futuro haya uno, pero no a partir de 2015-16. Si va a usar Ubuntu Snappy en una consola serie o ssh, es mejor que esté preparado para usar vim.

Sergiy Kolodyazhnyy
fuente
0

Me metí en una situación en la que solo funcionaba el modo de línea de vi. Algo que tiene que ver con haber arruinado las definiciones de terminal. Básicamente, solo vi en modo de línea (esto se comporta como vi normal si finge que tiene un terminal de 1 línea), ex y ed iban a funcionar porque la única definición de terminal era "tonta".

Joshua
fuente