vi est un éditeur de texte plein écran écrit par Bill Joy en 1976 sur une des premières versions de la distribution Unix BSD. Il est présent d'office sur la majorité des systèmes Unix actuels, souvent sous la forme d'un clone du logiciel vi originel. vi a été programmé en 1976 et 1979 par Bill Joy, alors étudiant en second cycle à l'Université de Berkeley. Il avait d'abord tâché de perfectionner l'éditeur ligne d'Unix ed, qui en était à sa 6 version, et avait abouti à l'éditeur ligne ex. Chuck Haley et un autre étudiant, Mark Horton, apportèrent à vi le principe des « macros » , tout en portant le logiciel sur une multitude de plates-formes Unix. Dès la diffusion de BSD 4.1 (1981), l'éditeur vi comportait ses principaux traits actuels. Le nom vi provient de l'abréviation la plus courte possible (c'est-à-dire sans ambiguïté) de la commande visual de l'éditeur de texte ex, car cette commande fait passer l'éditeur ex du mode ligne par ligne au mode plein écran : ce n'est donc au départ qu’une interface visuelle (en anglais, Visual Interface) de l'éditeur ex (lui-même extension de l'éditeur en ligne ed). ex est toujours disponible dans vi en appuyant sur : en mode commande. En pratique, lors de l'invocation de vi ou ex, un unique programme est démarré : son comportement est décidé par le nom avec lequel on l'a appelé. Le nom vi correspondant à la fois à des initiales et au nom de son fichier d'installation, il est usuellement prononcé en énonçant les deux lettres en anglais, c'est-à-dire [vi: aɪ], plutôt que comme un mot à part entière [vi]. vignette|Fonctionnement modal de vi : les trois modes. vi est un éditeur modal, c'est-à-dire que la signification des boutons et des touches change selon le mode dans lequel il se trouve. En mode insertion, le texte tapé est inséré dans le document. Appuyer sur la touche Echap depuis le mode insertion permet de passer dans le mode commande, dans lequel les touches correspondent à des déplacements du curseur ou à des fonctions d'édition.