Les plus grandes différences entre Vim et VI

25

Aujourd'hui, j'ai décidé d'essayer Vi au lieu de Vim, je voulais voir à quel point c'est différent. Je n'ai pas remarqué beaucoup de différences, la plus grande chose que j'ai remarquée est que Vi n'a pas dit -- INSERT --quand je suis entré en mode insertion, et il y avait quelques différences d'interface mineures.

Cela m'a fait me demander quelles sont les plus grandes différences entre Vi et Vim?

Loovjo
la source
1
Vous n'utilisez évidemment pas beaucoup de fonctionnalités avancées de vim. sélection de bloc, recherche de mot sous le curseur, incrémentation du numéro sous le curseur, mise en évidence de la syntaxe, etc.
Jim

Réponses:

25

Il existe en fait une commande d'aide dans vim pour vous informer des différences: :help vi_diff

Sur le site de Vim , les plus importants sont:

annulation illimitée

Vous pouvez effectuer xxxx et annuler chacune des quatre suppressions. À quand remonte la dernière fois que vous avez tapé "jjjj" et découvert que la touche de verrouillage des majuscules était activée? Vous avez accidentellement joint cinq lignes et Vi ne peut annuler que la dernière commande. Dans Vim, vous pouvez annuler les quatre commandes "J" et récupérer votre texte d'origine.

portabilité

Vi est uniquement disponible sur Unix. Vim fonctionne sur MS-Windows, Macintosh, Amiga, OS / 2, VMS, QNX et d'autres systèmes. Et aussi sur tous les systèmes Unix.

coloration syntaxique

Vim peut être programmé pour mettre en surbrillance des parties du tampon dans différentes couleurs ou styles, en fonction du type de fichier en cours d'édition. Il existe des centaines de jeux de règles de coloration syntaxique fournis avec Vim.

GUI

Vim fonctionne bien sur une console, mais il peut s'exécuter en mode natif dans de nombreuses interfaces graphiques, y compris X Windows, Mac OS et Microsoft Windows. Il utilise des widgets GUI natifs pour le défilement, la division des tampons et le menu. Il peut également parler au presse-papiers.

apparat
la source
4
Quelques différences supplémentaires sont mentionnées dans la FAQ
Christian Brabandt
Selon le fichier Lisez - moi , certains de ces systèmes d'exploitation ne sont plus pris en charge.
Rolf
7

Vim possède de nombreuses fonctionnalités que Vi ne possède pas, même des fonctionnalités qui ne sont évidemment pas des fonctionnalités "avancées".

En pratique, cela signifie que si vous êtes habitué à Vi, vous rencontrerez probablement très peu de différences si vous commencez à utiliser Vim (ou un autre clone Vi), mais si vous êtes habitué à Vim et si vos "réflexes" incluent des fonctionnalités telles que mise en surbrillance en mode visuel, toute action de touche commençant par "g" ou "z", toute action de texte avec "i" ou "a" [par exemple "daw" pour supprimer un mot sous le curseur], navigation avec les touches fléchées en mode insertion , etc., vous constaterez que ceux-ci ne fonctionnent pas dans Vi.

Il y a aussi la question de savoir exactement ce que vous utilisiez lorsque vous dites que vous "avez essayé Vi". Sur de nombreux systèmes, "vi" exécute réellement Vim, dans un mode où certaines de ces différences s'appliquent (mode d'affichage par défaut comme vous l'avez observé, les touches fléchées ne fonctionnent pas en mode insertion) et d'autres pas (mode visuel et touches g / z fonctionnent ), et certaines fonctionnalités dépendent d'une option de compilation qui est parfois désactivée dans le "petit Vim" utilisé pour cela (les objets texte, tels que "aw" un mot, en font partie). Vous ne les obtiendrez pas si vous exécutez le vrai Vi, ou si "vi" est un autre clone avec moins ou différentes fonctionnalités que Vim, comme nvi ou VILE.

Et, du côté obscur, alors que "le petit Vim en mode Vi" n'a évidemment pas de fonctionnalités qu'un Vim complet n'a pas, il y a quelques fonctionnalités du Vi original authentique qui manquent à Vim. Ceux-ci sont documentés dans :help vi-differences.

Aléatoire832
la source
2
Je parierais fortement que OP a en fait un "minuscule vim" vi.
Kevin
2

La plupart des comparaisons donnent plus de fonctionnalités à vim qu'à vi, mais il y a une exception. Il y avait un mode "ouvert" dans vi, et vim n'a pas vraiment ce mode.

Le mode ouvert est un mode unifilaire qui était utilisé à l'époque avec des terminaux qui n'avaient pas d'affichage électronique, c'est-à-dire des télétypes, des imprimantes à lettres, etc., et également avec des affichages où le curseur ne reste qu'en bas.

Je sais qu'il existe une documentation qui dit que vim simule le mode ouvert, mais mon expérience est que ce n'est pas le cas, car je l'ai vu utilisé avec vi de mes propres yeux, et je n'ai jamais vu vim le faire. Il semble que vim utilise simplement la opencommande simplement pour ouvrir et éditer un fichier en mode visuel. Je crois que la documentation officielle de vim indique qu'elle ne prend pas en charge le mode ouvert.

gracious1
la source
J'ai ex-vi.sourceforge.net installé, qui est un port du Vi d'origine. Comment démarrer ce mode ouvert? La page de manuel le mentionne en parlant ^R, mais ne donne aucune autre aide. :open some/fileretourne open: No such command from open/visual.
muru
@muru Qpour entrer en mode ex, alors open. zpour afficher le contexte de la ligne actuelle une fois que vous êtes en mode ouvert. Pour reculer, Qalors vi.
Antony
0

Je pense qu'il est très difficile de faire la comparaison, en raison des changements de vi qui se sont produits au fil du temps.

Quand j'étais au collège, j'ai utilisé plain-vanilla vi sur un terminal stupide (et également sur un émulateur de terminal sur un Mac) qui se connectait aux ordinateurs centraux en utilisant le système V. Vous ne pouvez même plus trouver cela.

Mais je ne suis même pas sûr que c'était vrai vi. À cette époque, il y avait beaucoup de clones et de ports créés parce que vi n'était pas open-source à l'époque. Et lorsque les fournisseurs ont créé des clones, ils ont ajouté des fonctionnalités qui n'étaient pas dans vi. L'histoire est un peu alambiquée. Vous pouvez le lire sur Wikipedia et ailleurs.

Donc, si vous n'utilisiez pas certains fournisseurs / matériel, vous n'utilisiez pas vi, mais quelque chose comme vi.

Mais je me souviens que vi (ou le clone que j'utilisais) était très minimaliste dans son interface (pas de couleurs, pas d'étiquettes INSERT, pas d'annulations multiples, etc.) mais puissant dans ce qu'il pouvait réellement accomplir. Très pratique.

gracious1
la source
0

La FAQ Vim a une liste bien formatée: https://vimhelp.org/vim_faq.txt.html#faq-1.4

Extrait de la FAQ:

  • Annulation à plusieurs niveaux
  • Onglets, plusieurs fenêtres et tampons
  • Mode d'insertion flexible (peut utiliser les touches fléchées en mode d'insertion)
  • Macros
  • Mode visuel (sélectionnez visuellement des sections de texte)
  • Opérateurs de bloc
  • Système d'aide en ligne
  • Édition et historique en ligne de commande
  • Compléter la ligne de commande (tabulation complétée)
  • Défilement horizontal (longues lignes)
  • Améliorations Unicode et internationalisation.
wisbucky
la source