Y a-t-il des cas où vi est la seule option?

22

Existe-t-il des scénarios où viest la seule option pour créer, éditer ou modifier un fichier dans un environnement Ubuntu?

Ma question est essentiellement de vraiment savoir s'il y a un tel cas où je serais forcé d'utiliser vicar ce serait la seule option disponible dans un cas particulier de l'écosystème Ubuntu.

Est- ce qu'un exist cas particulier où je ne serais pas en quelque sorte avoir accès à d' autres options comme nano, picoou le simple envoi d' informations avec des outils comme cat, sed, teeet plus encore?

Je suppose que c'est plus du côté serveur ou cloud car sur le bureau, il y a beaucoup plus d'options, mais de toute personne qui utilise beaucoup le terminal, je demande:

Existe-t-il un tel cas?

Luis Alvarado
la source
8
@Tim visudopeut en fait utiliser n'importe quel éditeur. Comme sa configuration par défaut sur Ubuntu respecte les variables d'environnement EDITORet VISUAL, vous pouvez exécuter sudo env VISUAL=emacs visudopour emacs ou même gksudo env VISUAL=gedit visudopour un éditeur graphique comme Gedit. ( sudo -Hou sudo -ipeut être utilisé à la place de gksudo.) Je suggère cette envméthode car VISUAL=emacs sudo visudoelle ne fonctionnera pas ( sudoréinitialise la plupart de l'environnement) et sudo -EH pourrait être considérée comme déconseillée.
Eliah Kagan
3
vi est la seule option ... lorsque vi est le seul éditeur installé que vous connaissez et que vous ne voulez pas passer du temps à en installer un autre. vi est la meilleure option lorsque vi est l'éditeur que vous connaissez / aimez le mieux parmi ceux disponibles et que vous ne voulez pas passer du temps à en installer un que vous aimez plus. Il n'y a JAMAIS de cas où un seul outil peut résoudre un problème; il peut y avoir des moments où les choix sont limités. Et certaines personnes aiment vraiment vi. (Pas moi. Je suis un fanatique d'Emacs. Bien que je puisse tolérer de nombreux éditeurs.)
keshlam
3
cat? sed? Vraiment? vin'est vraiment pas si compliqué, et si vous ne pouvez vraiment pas être dérangé pour l'apprendre, vous n'avez qu'à vous souvenir de deux modes (mode normal et mode insertion). Vous déplacez le curseur avec des flèches (ou HJKL si non disponible), appuyez sur "i" pour commencer l'édition (mode insertion). Une fois que vous avez terminé, appuyez sur "Esc" pour revenir au mode normal. Tapez ": wq" pour enregistrer et quitter (Write + Quit).
sleblanc
2
il suffit de le sucer et d'apprendre vi :) Ce n'est pas aussi difficile qu'il y paraît et une fois que vous le savez, vous ne perdrez jamais de temps à chercher d'autres éditeurs sur n'importe quel nouveau système que vous utilisez.
JamesRyan

Réponses:

32

À l'intérieur de l' écosystème Ubuntu , je ne pense pas que ce cas puisse même exister , comme viserait au moins un minuscule vim, qui est déjà un «réel vim» loin de «réel vi».

Dans le contexte des systèmes embarqués à ressources limitées , qui ne sont normalement pas Ubuntu, vous pouvez simplement en avoir un viqui se révèle être un lien vers busybox. Et pas de place. Ensuite, vic'est la seule option.

En dehors de cela, je pense que les situations où vila seule option n'est pas très courante du tout aujourd'hui, même en dehors du monde Linux .

Mais il peut facilement y avoir des situations où viest la seule option que vous pouvez planifier , la seule option qui existera certainement dans une situation future - qui se produira probablement à l'intérieur de la salle de serveurs trop froide d'un client.

Imaginez que vous soyez appelé par un client:

Client: J'ai besoin de corriger cette configuration! À présent!! Je ne sais pas comment, mais je peux vous dire où se trouve le fichier de configuration. Pouvez-vous m'aider!?!

Vous: Ok, sur quel type de système est-ce que ça fonctionne?

Client: Oh, c'est sur le serveur foo, ahh ... il fonctionne ... je ne me souviens pas, quelque chose avec "ix" à la fin , ou mayeb avec "ux" ...

Pas de problème, maintenant vous savez qu'il y en aura vi!

Volker Siegel
la source
1
J'ai personnellement travaillé sur un certain nombre de systèmes embarqués qui ne contenaient que vi en tant qu'éditeur de texte, je crois que buildroot et yocto l'ont tous les deux comme le seul éditeur lors de l'utilisation d'options de configuration minimales. Certes, ce n'est pas un problème sur Ubuntu, mais si vous êtes un développeur intégré, cela peut être un vrai problème. Cependant, comme le dit l'OP, vous pouvez toujours utiliser des outils basés sur des tuyaux tels que sed, sort, grep et autres, mais cela peut être très douloureux.
Vality
Le cas de la boîte occupée est en effet un bon. Ce qui est ennuyeux, c'est que je ne pense pas que ce soit même un vi complet (au moins il n'y a pas dix ans, et j'espère qu'ils ne l'ont pas gonflé, même si c'est ennuyeux).
hyde
1
busybox viest de 4k lignes:; curl -s https://gitorious.org/busybox/busybox/raw/1c7a58dfb82ea04c525e0c19f94f2d800dee99e3:editors/vi.c | wc)
Volker Siegel
17

Vi n'est jamais la seule option; vous pouvez toujours utiliser à la edplace.

evilsoup
la source
8
Dans Arch Linux, par exemple, edne fait pas partie du base.
muru
@muru FWIW vimne l'est pas non plus.
Sparhawk
4
@Sparhawk l' viest.
muru
@muru Ah oui, bien sûr. Je me confondais.
Sparhawk
edn'est qu'une partie de l' standard^installation. Si vous effectuez une minimalinstallation, edn'est pas inclus.
Oli
13

Eh bien, il y a un cas où vous avez besoin de l' viéditeur, supposons:

  • il n'y a pas d'interface graphique
  • vous êtes sur un étrange *nixsystème inconnu
  • votre terminal ressemble à ceci:

entrez la description de l'image ici

  • vous avez assez de gars comme ça:

entrez la description de l'image ici

Comme vous pouvez le voir, il n'y a pas de clavier numérique . Avec l'ancien vi(et je veux dire le traditionnel d' originevi , non vim, vim.tinyou vim.basic) , vous pouvez éditer un fichier avec ce clavier. Sans touches fléchées ? Oui, lorsque vous êtes en mode de commande vous avez déplacé à travers le fichier avec h, j, ket l, comme un pro.ha été laissé, jétait en baisse, kétait en hausse et lavait raison.

le chaos
la source
5
Je pense que cette réponse n'est en fait pas si mauvaise (les claviers de type machine à écrire ne sont pas complètement improbables), mais en fait cela ne signifie pas que vous avez besoin vien particulier. Tous les éditeurs de texte plus anciens ont des combinaisons de touches de "sauvegarde" qui vous permettent de travailler sans touches fléchées, etc., bien que j'ose dire que vic'est le seul éditeur où vous ne manqueriez pas les touches fléchées.
leftaroundabout
Un peu hors sujet: je ne vois pas pourquoi vous auriez besoin d'un clavier numérique pour n'importe quel éditeur de texte, et les touches fléchées sont de toute façon inutiles dans Vim. : P
Poignée de porte
1
Hé, ne négligez pas le bon vieux ed! Pas besoin de ces gadgets "visuels" sur un système comme ça! Essayez d'utiliser vim sur un terminal papier et voyez comment vous gérez ... Plus sérieusement, le savoir edest utile de toute façon, c'est une option décente lorsque l'édition doit être scriptée.
hyde
comment passer en mode commande avec ce clavier (je ne vois pas de fuite; y avait-il un autre combo de touches pour ça?)
Foon
@Foon Il y a une touche d'échappement =) C'est où l'onglet devrait normalement être. À gauche de la touche Q.
chaos
6

Le fait est que, dans de nombreuses distributions, les éditeurs aiment nanoet picone sont tout simplement pas standard tandis que d'autres packages le vim-tinysont. Voir ici pour la liste des paquets de ubuntu-minimal, vim-tinyest le seul éditeur . Selon cette réponse, cela semble également être le cas pour le serveur Ubuntu. Je sais que c'est également le cas pour la base Debian, Fedora.

Cela étant dit, étant donné que si vous avez nanosur votre système, je n'ai pas encore vu de cas où vous devriez utiliser à la viplace, mais, en jouant avec la réponse de @ Volker, si vous travaillez pour un client et que vous n'avez pas accès root? apt-get install nanone va pas vous faire beaucoup de bien (s'il a même accès à Internet extérieur!).

Mitch
la source
4

Il y a un certain nombre de cas où vi(et par cela je veux dire naturellement vim.tinyparce que c'est ce que nous expédions) pourrait être le seul éditeur interactif. Si nous ignorons les papillons et les rayons cosmiques, ceux-ci semblent être les occasions les plus probables où cela pourrait se produire:

  • Vous utilisez uniquement le ubuntu-minimalméta-package de base. Cela dépend vim-tiny mais pas d'autres éditeurs. Je ne peux pas actuellement trouver un moyen d'installer Ubuntu sans la standard^tâche mais vous pouvez le supprimer après l'installation avec:

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

    J'ai une expérience personnelle où j'ai reçu une image système sans que la standard^tâche ne soit installée. Si je n'avais pas eu accès au réseau, vicela aurait été ma seule option.

  • Chrooter dans un environnement qui n'a été cartographié qu'à vitravers

  • Nuking manuellement tous les autres éditeurs (et désactiver les moyens de les réinstaller)

  • Briser manuellement le shell pour arrêter les éditeurs connus, sauf s'il viest lancé.

Une installation vraiment minimale sera la raison la plus probable, mais celles-ci sont assez rares de nos jours. Certaines sociétés d'hébergement VPS et cloud les utilisent (pour économiser autant d'espace disque qu'autre chose), mais je dirais qu'elles ne sont certainement pas la norme.

Oli
la source
Une réponse impressionnante comme toujours. Je le trouve très bien informé.
Luis Alvarado
2

Dans les cas où vous ne pouvez pas installer emacs, ou dans les cas où vous devez modifier un fichier de configuration afin de vous permettre d'installer emacs. :-p

Craig
la source
Ou dans les cas où vous souhaitez utiliser un éditeur supérieur, meilleur qu'emacs. ( cue flamewar ): P
Poignée de porte
3
Certes, si vous utilisez Ubuntu vous déjà avez un système d'exploitation, de sorte emacs seraient redondants: v
evilsoup
Hé, joli comback. :-p
Craig
2

Beaucoup (la plupart?) D'installations Busy-Box n'en ont que vi.

Ce n'est pas spécifique à Ubuntu, mais c'est vrai pour de nombreux appareils intégrés.

Faux nom
la source
2

Il y a toujours chat, tête, queue ... donc je ne suis pas sûr qu'il y ait un système où vous n'avez pas d'alternative, mais il est possible de trouver des systèmes où il n'y a pas de meilleure alternative même si vous préférez emacs.

Mon exemple était un système que j'ai administré une fois, qui était soit si lent (ou la ligne était lente et avec perte), que lors de la navigation avec les touches du curseur, il passait souvent soudainement pour insérer et injecter des ordures dans le fichier édité et utiliser HJKL pour le mouvement était la seule option fiable.

Edheldil
la source
1
Et bien sûr, les bons vieux papillons !
leftaroundabout
2

Voici le cas où vim est la seule option dans l'écosystème Ubuntu: Ubuntu Snappyne vient pas avec un éditeur de texte autre que vim-tiny. Peut-être qu'à l'avenir, il y en aura un, mais pas en 2015-2016. Si vous allez utiliser Ubuntu Snappy sur une console série ou ssh, vous feriez mieux d'être prêt à utiliser vim.

Sergiy Kolodyazhnyy
la source
0

Je me suis retrouvé dans une situation où seul le mode de ligne de vi fonctionnait. Quelque chose à voir avec le fait d'avoir vraiment foiré les définitions de terminaux. Fondamentalement, seuls vi en mode ligne (cela se comporte comme un vi normal si vous prétendez avoir un terminal à 1 ligne), ex et ed allaient fonctionner parce que la seule définition de terminal était "stupide".

Joshua
la source