Vi vs vim, ou y a-t-il une raison pour laquelle je voudrais un jour utiliser vi?

Je connais un peu les éditeurs de texte * NIX (en cours de migration de nano vers vim), et, après avoir regardé un peu sur Unix & Linux SE, ont remarqué que vi est utilisé au lieu de « vim » dans un bon nombre de questions. Je sais que « vim » signifie « Vi IMproved », et, dans cet esprit, je me demande pourquoi quelquun préférerait utiliser vi au lieu de vim. Est-ce que vi a un avantage significatif sur vim?

Edit: Je pense que ma question est mal interprétée. Je sais que vim est, pour la plupart, beaucoup plus puissant et complet que vi. Ce que je veux savoir, cest sil y a des cas possibles où vi a un avantage sur vim, comme une utilisation moindre de la mémoire, une prévalence sur les systèmes * nix, etc.

Commentaires

  • La bonne chose à propos de vi est que vous pouvez vous attendre à ce quil soit sur tous les systèmes compatibles POSIX.
  • En fait, linstallation standard dUbuntu inclut vi et non vim .. Ubuntu est lune des distributions les plus conviviales btw 😉
  • @amyassin This est incorrect, Ubuntu, comme la plupart des distributions Linux, inclut vim. vi nest quun lien symbolique qui pointe finalement vers vim dans linstallation par défaut.
  • Mon conseil est: Utilisez Vim, mais apprenez vi en utilisant les Spécifications POSIX pour vi . De cette façon, vous avez des connaissances portables ainsi que des extensions Vim.
  • @DDK Vous avez manqué  » finalement  » dans ma déclaration.  » ls -l / etc / alternatives / vi  » – >  » lrwxrwxrwx 1 racine racine 17 janv. 1 2016 / etc / alternatives / vi – > /usr/bin/vim.tiny »

Réponse

vi est (aussi) un éditeur standard POSIX . Il existe de nombreuses implémentations et vim est probablement la plus populaire.

Alors que de nombreux systèmes dexploitation traditionnels compatibles Unix fournissent vi implémentations très proches du standard, vim a ajouté de nombreuses fonctionnalités supplémentaires qui en font une épée à double tranchant.

Bien sûr, ces extensions sont généralement conçues pour faciliter le processus dédition et fournir des fonctionnalités et des fonctionnalités utiles. Cependant, une fois que vous êtes habitué à certains dentre eux (pas les cosmétiques comme la coloration syntaxique mais ceux qui changent le comportement de léditeur), vous pouvez facilement oublier quils sont spécifiques; et en utilisant une implémentation différente, y compris celles basées sur le BSD original le code peut être très frustrant. Le contraire est également vrai.

Ceci est assez similaire au problème qui se produit avec les scripts utilisant des bashismes non POSIX face à des implémentations de shell plus orthodoxes comme dash ou ksh.

Réponse

Aucune vi na tout avantage significatif par rapport à vim, cest plutôt linverse. Vim a plus davantages que Vi. Vous pourriez être intéressé par: Pourquoi, oh POURQUOI, faites-les #? @! les nutheads utilisent vi?

Modifier aussi lire: Apprendre le VIM en vaut-il la peine?

Commentaires

  • Oui. Je nutilise ‘ aucun IDE car les éditeurs quils vous obligent à utiliser ne sont que ‘ t Vim.
  • @Keith Jutilise à la fois Xcode et Eclipse et je ‘ suis toujours capable de faire de lédition avec vi uniquement.
  • @Keith SlickEdit a une excellente émulation Vim, et IDEA ‘ s sen approche. En outre, Visual Studio a ViEmu.
  • IntellIJ a également un joli plugin vim remplaçant le comportement de léditeur standard ‘.

Réponse

Après avoir passé une grande partie de ma vie (sans compter lenfance) à éditer confortablement avec Vim, jai passé environ un mois à nutiliser que vi. Ce faisant, jai réalisé que jétais dépendant de Vim pour tous mes besoins de modification de texte. Avant mon voyage avec vi, chaque fois que je devais remplacer du texte ou effectuer une opération similaire dans un grand groupe de fichiers, jouvrais simplement les fichiers dans Vim et exécutais une commande :bufdo , et chaque fois que je devais indenter ou formater certains fichiers, je les ouvrais dans Vim et jutilisais les commandes Vim « s = et gw Jétais dépendant de Vim.Après avoir réalisé que vi n’avait pas ces commandes, j’ai été obligé d’effectuer des transformations de texte en masse avec sed et jai beaucoup appris sur d’autres programmes tels que awk et indent. Bien que je sois revenu à lutilisation de Vim à la fin, les connaissances que jai acquises en utilisant un éditeur moins fonctionnel étaient substantielles et se sont avérées extrêmement utiles. En plus dapprendre des outils en dehors dun éditeur de texte, je me suis également familiarisé avec vi. Chaque fois que je travaille sur un nouveau système ou un serveur qui na pas Vim, je me sens beaucoup plus à laise avec vi que ce que je faisais avant mon excursion dun mois.

De plus, le mois dernier, jai installé Linux sur une tablette WM8650 bon marché et jai trouvé quil y avait une différence de performance notable entre Vim et vi, jai donc tendance à utiliser vi sur la tablette.

Commentaires

  • Je trouve que cest un problème courant en informatique – les outils qui nous aident peuvent également obscurcir les choses que nous ‘ ferions mieux dapprendre.
  • En fait, gérer La modification sur place de nombreux fichiers peut ‘ être effectuée de manière portable avec Awk ou Sed soit . (Le -i sur les deux est une extension GNU.) Mais vous pouvez les utiliser de manière portable avec quelque chose comme for f in *; do printf '%s\n' '%!sed -e '\''some sed command'\' x | ex "$f"; done

Answer

Jaurais du mal à vivre sans vim mais je ne supporte pas vi . Cependant, apprendre le premier vous laissera au moins une idée de la façon de gérer le plus tard quand cest tout ce qui est disponible.

Linterface vim par défaut est en fait assez proche de vi. Si je « Je travaille sur un système avec vim, la première chose que je fais est dajouter ce truc à ~/.vimrc:

syntax enable set nocp set wildmenu 

Il ya « un tas dautres choses que je préfère – nowrap et numérotation, etc. – mais tant pis. » Syntax enable « active simplement la coloration syntaxique de base (un peu plus costaud: filetype plugin on est fondamentale aussi); « nocp » désactive la compatibilité vi et cest cela qui commence à distinguer vim de ye olde vi (par exemple , il active showmode ce qui rend toute lexpérience un peu plus humaine, puisque vous savez maintenant si vous êtes en mode commande ou ~ INSERT ~). « wildmenu » vous donne juste un menu de complétion horizontal lorsque vous faites certaines choses, ce qui facilite également la vie.

Les fonctionnalités d édition de texte de vim sont incomparables – à part emacs, je nai jamais vu ou entendu parler dun logiciel qui sen rapproche. Ils ne sont pas faciles à apprendre, mais une fois que vous les connaissez, ils sont beaucoup plus rapides que les menus de la souris à utiliser et beaucoup plus dynamiques que les simples alternatives de macros clés dans les interfaces basées sur les menus de la souris. Pour la programmation, jutilise parfois vim avec un IDE comme Eclipse, mais je fais lessentiel du travail dans vim.

Si vous prenez ce chemin, lol, regardez dans les plugins dauto-complétion et de liste de balises. Et méfiez-vous du côté obscur.

Commentaires

  • Jajoute toujours set mouse=a aussi.
  • Concernant votre programmation commentaire, vous pouvez trouver eclim intéressant …
  • @ire_and_curses: havre ‘ t Essayé. Eclipse et vim surveillent tous les deux les fichiers source et leur permettent dêtre mis à jour en externe, et le basculement dun bureau à un autre revient à basculer dun bureau à un autre. Cela me semble tout à fait lidée.
  • Bien que je ne ‘ ne pense pas que cette réponse devrait être la réponse choisie (car elle ‘ est biaisé), il ‘ est exactement le type de perspective qui est utile pour comprendre les différences. Merci davoir pris position.

Réponse

Lavantage est que vi est généralement préinstallé dans les entreprises UNIX comme AIX ou Solaris. De plus, vim nest pas accessible sur le support dinstallation.

Réponse

Ceci est extrait de Vim Koans :

Master Wq et le maître Unix

Un ancien maître Unix est venu à Master Wq. «Je suis troublé, Wq. Vous enseignez la voie de Vim. vi est saint mais Vim ne lest pas; son code sétend, ses fonctionnalités encombrent la mémoire; ses binaires sont vastes, son comportement incohérent. Ce nest pas la manière dUnix. Je crains que vous ne trompiez vos élèves. Que peut-on faire? »

Maître Wq hocha la tête. «Vous avez raison», dit-il. «Vim est brisé. Laissez-nous le réparer. Devons-nous commencer? »

Lancien maître Unix accepta et ouvrit un shell. Il a tapé:

$ vi vim.c 

Il a commencé à coder. Maître Wq a regardé pendant un moment puis lui a demandé: «Quelle implémentation de vi utilisez-vous? Nvi? Vigueur? Elvis? »

« Je ne sais pas », a déclaré le maître Unix. « Cela na pas dimportance. »

Maître Wq hocha la tête. Le maître Unix resta stupéfait pendant un moment et ferma son document non enregistré.

Commentaires

  • hahah … cest drôle pour moi …. profond mais drôle.Merci pour le partage.

Réponse

Comme les réponses précédentes lont déjà mentionné, vi est fourni avec presque tous les systèmes UNIX là-bas.

Je voulais juste ajouter un exemple. Arch Linux est une distribution particulièrement populaire et légère que ni linstallateur, ni la distribution de base ne sont livrées avec vim par défaut, mais les deux sont livrées avec vi.

Ce nest pas un avantage pour vi en soi , car vous pouvez simplement installer vim manuellement, et il ya peu de choses à faire dans l installation qui nécessite un éditeur de texte, et rien où vim est supérieur à vi pour le but prévu. Mais comprendre la différence et que vi est plus omniprésent et léger que vim ne lui donne des avantages de niche.

De plus, pour être complet, personne na encore mentionné explicitement que vi est un précurseur direct de vim. Vim était spécifiquement conçu pour être tout que vi était, et plus encore.

Donc, de manière très directe, vim est supérieur à vi, car il a été conçu pour être .

Réponse

La seule raison d’utiliser vi plutôt que vim est que vous n’avez pas d’autre choix.

Il existe de très nombreuses raisons pour lesquelles vim se tient fo r « vi amélioré »!

Empruntant à un article connexe, jai répondu: –

  1. Plusieurs fenêtres – horizontale, verticale & onglets.
  2. Mise en évidence visuelle.
  3. Aide en ligne via la commande: help.
  4. Enregistrez les macros dans un registre que vous pouvez ensuite exécuter.
  5. Annuler (et refaire) plusieurs fois, plutôt que le basculement insensé de lancien vi.
  6. Historique de la ligne de commande, historique des recherches.
  7. Un langage entier intégré avec une multitude de fonctions disponibles, par exemple getcwd ()
  8. Correspondance de modèle très étendue.
  9. Complétion de mot via ctrl-P & ctrl-N.
  10. Un navigateur de fichiers intégré (un peu maladroit, mais peut être utile).
  11. La touche ESC quitte en fait les commandes que vous essayiez déchapper au lieu de les exécuter (follement) comme vi.
  12. Possibilité dexécuter des commandes sur tous les tampons, args ou fenêtres via bufdo, argdo & windo.

Commentaires

  • Vous auriez probablement pu apporter les  » beaucoup, beaucoup de  » raisons que vous avez mentionnées dans unix.stackexchange.com/a/425597/85039 réponse ici. Que ‘ d améliorer un peu cette réponse; sinon, cela ressemble plus à un commentaire quà une réponse réelle
  • Point pris. Réponse mise à jour, empruntant à une réponse connexe que jai faite hier.

Réponse

Jai remarqué que je uniquement choisissez Vi sur VIM lorsque Je copie et colle un document texte ou un fichier de configuration que jai utilisé la commande cat. En effet, lorsque jessaye de ctrl-c puis de ctrl-v dans le VIM document ouvert, cela oblige toutes les lignes à avoir un commentaire devant elles. Ainsi, lorsque jutilise Vi pour ctrl-v ou paste dans le Vi document ouvert, il colle exactement ce que jai copié. À part ça, jutilise VIM toute la journée.

Profitez-en!

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *