227 votes

Quelle est la différence entre Vi et Vim ?

J'apprécierais que quelqu'un puisse indiquer à un débutant quelles sont les différences entre vi y vim . J'ai entendu dire que Vim est le successeur de vi mais quand j'essaie d'ouvrir vi dans Ubuntu, il s'ouvre vim à la place.

0voto

Ashkan Aryan Points 1695

Pour ajouter à ce que @gen a dit, il est plus facile de le lire directement depuis vimhelp.org, si vous ne souhaitez pas tester les choses vous-même. La réalité est que la plupart des gens utilisent très peu des capacités du "vrai" vi et encore moins de celles de vim ou de nvi.

https://vimhelp.org/vi_diff.txt.html

https://vimhelp.org/options.txt.html#%27compatible%27

https://vimhelp.org/vi_diff.txt.html#posix-compliance

La plus grande chose I Remarquez comment undo / re-do a été cassé euh "amélioré" dans vim, le comportement non-classique de la touche "BACKSPACE", et la lenteur de vim-tiny comparé à n/vi parfois. Un append de 50 000 répétitions peut bloquer une session pendant presque une heure dans toutes les versions de vim que j'ai testées. Un append de 2 000 000 des mêmes données dans nvi prend moins de 5 secondes. Les développeurs de vim connaissent ce bogue mais ne pensent pas qu'il vaille la peine d'être corrigé.

^[50000aUse vim or nvi or vi?^[

Mieux vaut ne pas essayer ça dans vim sur une boîte de production. Je dis ça comme ça

Si vous ne le savez pas, ^[ est le code pour la touche "ESCAPE". Vous DEVRIEZ le savoir.

En général, vos compétences de base en vim de ^[ibla foo bar^[:wq ! seront suffisamment transférées au "vrai" vi si vous devez supporter un vrai UNIX comme AIX, HP-UX ou Solaris. Mais si vous comptez sur les touches fléchées pour vous "déplacer" en mode Insertion, vous risquez de passer un mauvais quart d'heure. Vous ne devriez pas déplacer le curseur en mode Insertion, que vous utilisiez les touches fléchées ou non, dans les années 1980 ou non. Les déplacements sont censés être effectués en mode Commande. Il est plus rapide et vous permet d'utiliser la puissance réelle de vim|n/vi. Sinon, vous pourriez tout aussi bien utiliser le Bloc-notes de MS Win. Si vous utilisez vim|n/vi comme prévu, les touches hjkl et/ou les flèches - en mode Commande - seront toujours votre dernier recours pour vous déplacer dans un fichier. C'est trop inefficace et trop lent. Vous tapez du "nouveau" texte en mode Insertion, alors que presque tous les déplacements et l'édition de texte se font en mode Commande.

C'est la partie que beaucoup de gens ne semblent pas comprendre. Les touches fléchées ne fonctionnent pas en mode insertion et tapent des "déchets" lorsqu'elles sont pressées parce qu'elles disent littéralement à vi d'"insérer" le code de contrôle de votre touche fléchée, ce qu'il fait : ^B. Ensuite, les gens se plaignent que UNIX/vi fait ce qu'ils lui ont dit de faire ! Si vous ne voulez pas que vi insère le caractère, arrêtez de lui dire de le faire. C'est simple : Le mouvement est effectué en mode Commande.

De même, vim|n/vi ont 2 modes en commun : le mode Insertion et le mode Commande. Le mode " Échap " n'existe pas. ^[ vous met simplement en mode Commande.

n/vi ne dispose pas d'un mode "Visual Block", qui est spécifique à vim. Mais puisque les marques ont servi à cette fin dans vi depuis la fin des années 1970, je me demande pourquoi un mode Bloc visuel est nécessaire. Peut-être pour les personnes qui utilisent réellement la fonction de sélection COLONNE ?

Ne pas savoir ce que sont les marques vi et les tampons nommés, ou comment les utiliser, démontre que les gens n'ont pas parcouru certains des tutoriels vi les plus basiques qui existent depuis les années 80 ou même lu les pages de manuel.

Enfin, pour tous ceux qui pensent que "vi" est sur Ubuntu, ou sur presque tous les systèmes GNU/Linux, d'ailleurs, -

:version

Le nom est presque certainement un lien symbolique vers un binaire vim quelque part.

Toutes ces informations sur vi sont accessibles au public depuis environ 40 ans maintenant.

-EDIT- Je viens de penser à deux autres façons dont vim n'est pas POSIX vi :

  1. CTRL+R est censé redessiner l'écran, pas le "redo" de vim.
  2. Q (qui est carrément DÉSACTIVÉ dans certaines versions de vim, apparemment) est censé vous ramener à ex.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X