Vim (éditeur de texte) - Vim (text editor)
Auteur(s) original(aux) | Bram Moolenaar |
---|---|
Première version | 2 novembre 1991 |
Version stable | |
Dépôt | |
Écrit en | C , script Vim |
Système opérateur | Unix , Linux , Windows NT , MS-DOS , macOS , iOS , Android , Haiku , AmigaOS , MorphOS |
Taper | Éditeur de texte |
Licence | Vigueur |
Site Internet | www |
Vim ( / v ɪ m / ; une contraction de Vi IMproved ) est un programme d' édition de texte basé sur écran gratuit et open-source pour Unix. Il est un clone amélioré de Bill Joy de vi . L'auteur de Vim, Bram Moolenaar , a dérivé Vim d'un portage de l' éditeur Stevie pour Amiga et a publié une version publique en 1991. Vim est conçu pour être utilisé à la fois à partir d'une interface de ligne de commande et en tant qu'application autonome dans une interface utilisateur graphique . Vim est publié sous la licence Vim qui inclut des clauses de charité , encourageant les utilisateurs qui apprécient le logiciel à envisager de faire un don aux enfants en Ouganda . La licence Vim est compatible avec la GNU General Public License via une clause spéciale permettant la distribution de copies modifiées sous la GNU GPL version 2.0 ou ultérieure .
Depuis sa sortie sur Amiga, le développement multiplateforme l' a rendu disponible sur de nombreux autres systèmes . En 2006, il a été élu l'éditeur le plus populaire parmi les lecteurs du Linux Journal ; en 2015, l' enquête auprès des développeurs de Stack Overflow a révélé qu'il s'agissait du troisième éditeur de texte le plus populaire et, en 2019, du cinquième environnement de développement le plus populaire.
Histoire
Le précurseur de Vim, Stevie (éditeur ST pour VI Enthusiasts) , a été créé par Tim Thompson pour l' Atari ST en 1987 et développé par Tony Andrews et GR (Fred) Walter.
Basant son travail sur Stevie, Bram Moolenaar a commencé à travailler sur Vim pour l' ordinateur Amiga en 1988, avec la première version publique (Vim v1.14) en 1991.
Au moment de sa première sortie, le nom « Vim » était l'acronyme de « Vi IMitation », mais il est devenu « 'Vi IMproved » à la fin de 1993.
Historique des versions
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Interface
Comme vi , l'interface de Vim n'est pas basée sur des menus ou des icônes mais sur des commandes données dans une interface utilisateur textuelle ; son mode GUI , gVim , ajoute des menus et des barres d'outils pour les commandes couramment utilisées, mais toutes les fonctionnalités sont toujours exprimées via son mode de ligne de commande . Vi (et par extension Vim) a tendance à permettre à un dactylographe de garder ses doigts sur la rangée principale , ce qui peut être un avantage pour un dactylo tactile .
Vim a un didacticiel intégré pour les débutants appelé vimtutor. Il est généralement installé avec Vim, mais il existe en tant qu'exécutable séparé et peut être exécuté avec une commande shell. Il existe également le manuel d'utilisation de Vim qui détaille les fonctionnalités de Vim et une FAQ . Ce manuel peut être lu depuis Vim ou trouvé en ligne.
Vim dispose également d'une fonction d'aide intégrée (à l'aide de la :help
commande) qui permet aux utilisateurs d'interroger et de parcourir les commandes et les fonctionnalités.
Modes
Vim dispose de 12 modes d'édition différents, dont 6 variantes des 6 modes de base. Les modes les plus importants sont :
-
Mode normal - utilisé pour les commandes de l'éditeur. Il s'agit également du mode par défaut, sauf si l'
insertmode
option est spécifiée. - Mode visuel – similaire au mode normal, mais utilisé pour mettre en évidence des zones de texte. Les commandes normales peuvent être exécutées sur la zone en surbrillance, par exemple pour déplacer ou modifier une sélection.
- Mode Insertion - similaire à l'édition dans la plupart des éditeurs modernes. Dans ce mode, les tampons peuvent être modifiés avec le texte inséré.
-
Mode ligne de commande ou ligne de commande - prend en charge une seule entrée de ligne au bas de la fenêtre Vim. Les commandes normales (commençant par
:
) et quelques autres touches pour des actions spécifiques (y compris la recherche de modèles et la commande de filtrage) activent ce mode. À la fin de la commande, Vim revient au mode précédent.
Personnalisation
Vim est hautement personnalisable et extensible, ce qui en fait un outil attrayant pour les utilisateurs qui exigent une grande quantité de contrôle et de flexibilité sur leur environnement d'édition de texte. La saisie de texte est facilitée par une variété de fonctionnalités conçues pour augmenter l'efficacité du clavier. Les utilisateurs peuvent exécuter des commandes complexes avec des "mappages de touches", qui peuvent être personnalisés et étendus. La fonction « enregistrement » permet la création de macros pour automatiser des séquences de frappes et appeler des fonctions et des mappages internes ou définis par l'utilisateur. Les abréviations, similaires aux macros et aux mappages de touches, facilitent l'expansion de courtes chaînes de texte en de plus longues et peuvent également être utilisées pour corriger des erreurs. Vim propose également un mode "facile" pour les utilisateurs à la recherche d'une solution d'édition de texte plus simple.
Il existe de nombreux plugins disponibles qui étendent ou ajoutent de nouvelles fonctionnalités à Vim. Ces plugins sont généralement écrits dans le langage de script interne de Vim, vimscript (également connu sous le nom de VimL), mais peuvent également être écrits dans d'autres langages.
Il existe des projets regroupant des scripts et des personnalisations complexes et visant à transformer Vim en un outil pour une tâche spécifique ou à ajouter une saveur majeure à son comportement. Les exemples incluent Cream , qui fait en sorte que Vim se comporte comme un éditeur de type clic-et-tapis, ou VimOutliner, qui fournit un contour confortable pour les utilisateurs de systèmes de type Unix.
Fonctionnalités et améliorations par rapport à vi
Vim a un mode de compatibilité vi, mais lorsque ce mode n'est pas utilisé, Vim a de nombreuses améliorations par rapport à vi. Cependant, même en mode de compatibilité, Vim n'est pas entièrement compatible avec vi tel que défini dans la spécification Single Unix et POSIX (par exemple, Vim ne prend pas en charge le mode ouvert de vi, uniquement le mode visuel). Les développeurs de Vim déclarent qu'il est "très compatible avec Vi".
Certaines des améliorations de Vim incluent l' achèvement , la comparaison et la fusion de fichiers (connus sous le nom de vimdiff), un système d'aide intégré complet, des expressions régulières étendues , des langages de script (à la fois natifs et via des interpréteurs de script alternatifs tels que Perl, Python, Ruby, Tcl, etc. ) comprenant la prise en charge des plugins , une interface utilisateur graphique (connue sous le nom de gvim), des fonctionnalités limitées d' environnement de développement intégré , une interaction avec la souris (avec et sans l'interface graphique), le pliage , l'édition de fichiers compressés ou archivés dans gzip , bzip2 , zip , et format tar et fichiers sur des protocoles réseau tels que SSH , FTP et HTTP , préservation de l'état de la session, vérification orthographique , fenêtres fractionnées (horizontales et verticales) et à onglets, Unicode et autres supports multilingues, coloration syntaxique , commande trans-session, historique de la recherche et de la position du curseur, historique des annulations/rétablissements à plusieurs niveaux et à plusieurs niveaux pouvant persister d'une session d'édition à l'autre, et mode visuel.
Pendant l'exécution, Vim enregistre les modifications de l'utilisateur dans un fichier d'échange avec l' extension ".swp" . Le fichier d'échange peut être utilisé pour récupérer après un crash. Si un utilisateur essaie d'ouvrir un fichier et qu'un fichier d'échange existe déjà, Vim avertira l'utilisateur, et si l'utilisateur continue, Vim utilisera un fichier d'échange avec l'extension ".swo" (ou, s'il y a déjà plusieurs fichier d'échange, ".swn", ".swm", etc.). Cette fonctionnalité peut être désactivée.
Script Vim
Le script Vim (également appelé Vimscript ou VimL ) est le langage de script intégré à Vim. Basées sur le langage de l'éditeur ex de l' éditeur vi original , les premières versions de Vim ajoutaient des commandes pour le flux de contrôle et les définitions de fonctions. Depuis la version 7, le script Vim prend également en charge des types de données plus avancés tels que les listes et les dictionnaires et (une forme simple de) la programmation orientée objet . Les fonctions intégrées telles que map()
et filter()
permettent une forme de base de programmation fonctionnelle , et le script Vim a lambda depuis la version 8.0. Le script Vim est principalement écrit dans un style de programmation impératif .
Les macros Vim peuvent contenir une séquence de commandes en mode normal , mais peuvent également invoquer des commandes ex ou des fonctions écrites en script Vim pour des tâches plus complexes. Presque toutes les extensions (appelées plugins ou plus communément scripts) de la fonctionnalité principale de Vim sont écrites en script Vim, mais les plugins peuvent également utiliser d'autres langages comme Perl , Python , Lua , Ruby , Tcl ou Racket . Ces plugins peuvent être installés manuellement ou via un gestionnaire de plugins tel que Vundle, Pathogen ou Vim-Plug.
Les fichiers de script Vim sont stockés sous forme de texte brut, de la même manière que tout autre code, et l'extension de nom de fichier est généralement .vim
. Une exception notable à cela est le fichier de configuration de Vim, .vimrc
.
Exemples
" This is the Hello World program in Vim script.
echo "Hello, world!"
" This is a simple while loop in Vim script.
let i = 1
while i < 5
echo "count is" i
let i += 1
endwhile
unlet i
Disponibilité
Alors que vi n'était à l'origine disponible que sur les systèmes d'exploitation Unix, Vim a été porté sur de nombreux systèmes d'exploitation, notamment AmigaOS (la plate-forme cible initiale), Atari MiNT , BeOS , DOS , Windows à partir de Windows NT 3.1 , OS/2 , OS/390 , MorphOS , OpenVMS , QNX , RISC OS , Linux , BSD et Mac OS classique . De plus, Vim est livré avec chaque copie d' Apple macOS .
Des ports indépendants de Vim sont disponibles pour Android et iOS .
Néovim
Autres noms | NVim |
---|---|
Première version | 1er novembre 2015 |
Version stable | |
Dépôt | https://github.com/neovim/neovim |
Écrit en | C , script Vim , Lua |
Système opérateur | Microsoft Windows et Unix-like |
Licence | Apache-2.0 |
Site Internet | neovim |
Neovim est un fork - avec des ajouts - de Vim qui s'efforce d'améliorer l'extensibilité et la maintenabilité de Vim. Neovim a la même syntaxe de configuration que Vim ; ainsi, le même fichier de configuration peut être utilisé avec les deux éditeurs, bien qu'il existe des différences mineures dans les détails des options. Si les fonctionnalités ajoutées de Neovim ne sont pas utilisées, Neovim est compatible avec presque toutes les fonctionnalités de Vim.
Le projet Neovim a été lancé en 2014, avec certains membres de la communauté Vim offrant un support précoce de l'effort de refactorisation de haut niveau pour fournir de meilleurs scripts, plugins et intégration avec les interfaces graphiques modernes . Le projet est un logiciel libre et son code source est disponible sur GitHub .
Neovim a réussi une levée de fonds en mars 2014, soutenant au moins un développeur à temps plein. Plusieurs frontends sont en cours de développement, utilisant les capacités de Neovim.
L'éditeur Neovim est disponible dans une archive de packages personnels , hébergée par Ubuntu et certains gestionnaires de packages plus conventionnels, permettant de l'installer sur une variété de systèmes d'exploitation.
Voir également
- Apprendre les éditeurs vi et Vim , un tutoriel pour vi et vim, publié par O'Reilly Media
- Guerre des éditeurs - la rivalité entre les utilisateurs des éditeurs de texte Emacs et vi (Vim)
- Liste des éditeurs de texte
- Comparatif des éditeurs de texte
- Vimpérateur
- pentadactyle