Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
vim [Le 29/10/2013, 21:14] bcag2 [Thème de coloration syntaxique] ajout répertoire thème par défaut |
vim [Le 11/09/2023, 20:05] (Version actuelle) jpph [Édition hexadécimale] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>éditeur_de_texte console programmation IDE gvim}} | + | {{tag>éditeur_de_texte console programmation IDE}} |
---- | ---- | ||
Ligne 15: | Ligne 15: | ||
Par défaut, votre système a une version basique de vim, procurée par le paquet **vim-tiny**, mais n'offrant pas toutes les possibilités de cet éditeur. | Par défaut, votre système a une version basique de vim, procurée par le paquet **vim-tiny**, mais n'offrant pas toutes les possibilités de cet éditeur. | ||
- | Commencez par [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>vim|vim]]**.\\ | + | Commencez par [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>vim|vim]]** ou **[[apt>vim-gnome|vim-gnome]]**. Cette version //vim-gnome// a l'avantage de disposer des options pour utiliser le presse-papier (( reportez-vous à l'article [[https://vim-fr.org/index.php/Les_presse-papiers]] pour plus de détails sur les presse-papiers de vim))\\ |
Si vous souhaitez une interface graphique pour utiliser Vim, reportez-vous à la page **[[:gvim]]**. | Si vous souhaitez une interface graphique pour utiliser Vim, reportez-vous à la page **[[:gvim]]**. | ||
- | |||
===== Utilisation ====== | ===== Utilisation ====== | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ==== Mettre en français la doc vim ==== | ||
- | |||
- | |||
- | |||
- | Sur Ubuntu 12.04. Tout d'abord, télécharger la traduction de la doc de vim sur le site : http://cfennajoui.net/vim/ //(miroir)// | ||
- | |||
- | Ensuite, dans un terminal root, sauvegarder la doc vim actuelle (en anglais) dans un répertoire à créer /usr/share/vim/vimcurrent/old_vim_doc/doc/ (mieux vaut être prudent…) | ||
- | |||
- | Puis recopier le contenu décompressé de archive_traduit.tar.gz (de Téléchargements) dans /usr/share/vim/vimcurrent/doc/ | ||
- | |||
- | Vérifier en ouvrant un fichier d'essai avec vim que l'aide est bien en français. Tout va bien ! | ||
Ligne 47: | Ligne 30: | ||
(ou pour la version graphique, lancez l'application **gvimtutor** avec la combinaison de touches **ALT + F2** ou dans le terminal) | (ou pour la version graphique, lancez l'application **gvimtutor** avec la combinaison de touches **ALT + F2** ou dans le terminal) | ||
- | Vim dispose aussi d'un tutoriel francophone non-officiel en ligne : [[http://vim-fr.org/]] | ||
- | Si vimtutor s'avère être vide, c'est que seule une version minimale de Vim est installée. C'est le cas par défaut sur certaines versions d'Ubuntu. Afin d'installer la version complète : **[[apt>vim]]** ou ''sudo apt-get install vim'' | ||
==== Principe de base ==== | ==== Principe de base ==== | ||
Ligne 58: | Ligne 39: | ||
Le fichier s'affiche. Vous êtes dans le **mode commande**((**éditeur modal**: possède différents modes de fonctionnement **commande**, **insertion**)), c'est à dire que vous pouvez déplacer le curseur comme vous le souhaitez avec les touches h,j,k,l ou avec les flèches ←↓↑→ et entrer des commandes pour agir sur le texte. Si vous tapez un nombre avant une commande, elle se répétera d'autant. | Le fichier s'affiche. Vous êtes dans le **mode commande**((**éditeur modal**: possède différents modes de fonctionnement **commande**, **insertion**)), c'est à dire que vous pouvez déplacer le curseur comme vous le souhaitez avec les touches h,j,k,l ou avec les flèches ←↓↑→ et entrer des commandes pour agir sur le texte. Si vous tapez un nombre avant une commande, elle se répétera d'autant. | ||
- | |||
Pour accéder au **mode insertion**((**éditeur modal**: possède différents modes de fonctionnement **commande**, **insertion**)) afin de modifier ou d'insérer du texte, il suffit d'appuyer sur « **i** » dans le mode commande. Appuyer sur la touche « **Échap** » pour en sortir et repasser en mode commande. | Pour accéder au **mode insertion**((**éditeur modal**: possède différents modes de fonctionnement **commande**, **insertion**)) afin de modifier ou d'insérer du texte, il suffit d'appuyer sur « **i** » dans le mode commande. Appuyer sur la touche « **Échap** » pour en sortir et repasser en mode commande. | ||
Ligne 103: | Ligne 83: | ||
^ Exemples ^ Action ^ | ^ Exemples ^ Action ^ | ||
- | | **<control-w>-v** | Diviser horizontalement | | + | | **<control-w>-s** | Diviser horizontalement | |
- | | **<control-w>-s** | Diviser verticalement | | + | | **<control-w>-v** | Diviser verticalement | |
| **<control-w>-w** | Passer à la fenêtre suivante | | | **<control-w>-w** | Passer à la fenêtre suivante | | ||
| **<control-w>-n** | Ouvrir un fichier vierge dans une nouvelle fenêtre | | | **<control-w>-n** | Ouvrir un fichier vierge dans une nouvelle fenêtre | | ||
+ | | **: tabnew //nom_fichier// ** | Ouvrir le fichier //nom_fichier// dans un onglet | | ||
| **<control-w>-q** | Fermer la fenêtre | | | **<control-w>-q** | Fermer la fenêtre | | ||
Ligne 120: | Ligne 101: | ||
* de trouver les fichiers incluant le header file indiqué sous le curseur | * de trouver les fichiers incluant le header file indiqué sous le curseur | ||
+ | ==== Comparaison de fichiers ==== | ||
+ | |||
+ | Vous pouvez comparer le contenu de deux fichiers en lançant : | ||
+ | <code>vimdiff fichier1 fichier2</code> | ||
+ | vimdiff peut-être remplacé par vim -d\\ | ||
+ | Si vous êtes déjà dans vim en édition sur le fichier1: | ||
+ | <code>:vert diffsplit fichier2</code> | ||
+ | si vous ne spécifiez pas //vert//, le "split" sera horizontal (beaucoup moins pratique).\\ | ||
+ | Ajoutez | ||
+ | <code>set diffopt=vertical</code> | ||
+ | dans votre fichier //vimrc// pour que ce soit par défaut. | ||
+ | |||
+ | ==== Édition hexadécimale ==== | ||
+ | |||
+ | vim peut servir d'[[wpfr>éditeur hexadécimal]] (voir aussi hexedit) : après avoir ouvert votre fichier en mode binaire (vim -b), tapez | ||
+ | <code>:%!xxd</code> | ||
+ | pour revenir en édition normale <code>:%!xxd -r</code> | ||
+ | comme pour les autres utilisations (recherche, remplace...), vous pouvez remplacer % par un n° de ligne ou un intervalle | ||
+ | |||
+ | !! Attention a bien éditer et sauvegarder en mode binaire sinon vous risquez de corrompre le fichier avec des auto tab et des conversion de retour a la ligne. vim -b pour lancer en mode binaire, ou :set binary pour activer le mode une fois vim lancé. | ||
+ | |||
+ | ==== Terminal ==== | ||
+ | Avec la version 8.1, il est possible d'ouvrir une fenêtre //terminal// | ||
+ | <code> :terminal</code> (le mot abrégé //term// convient), si vous préférez en vertical : <code>:vert term</code> | ||
+ | |||
+ | Pour sortir: <code> <Ctrl-D> </code> ou <code> «exit» </code> | ||
+ | |||
+ | ==== Macro ==== | ||
+ | Il est possible d'enregistrer des macros associées à une lettre.\\ | ||
+ | Pour démarrer l'enregistrement de la macro, on tape **qx** pour enregistrer la macro dans un registre **x**\\ | ||
+ | On saisi ensuite la(les) commande(s) à enregistrer, par exemple un rechercher/remplacer qu'on veut exécuter dans plusieurs fichiers (action qu'on peut aussi faire avec la commande //sed// en [[CLI]])\\ | ||
+ | On fini l'enregistrement en tapant **q**\\ | ||
+ | Pour lancer une macro, il suffit de taper le caractère //@// suivi de la lettre correspondant au registre, //x// dans notre exemple : **@x**\\ | ||
+ | source ((https://vim.fandom.com/wiki/Recording_keys_for_repeated_jobs)) | ||
+ | |||
+ | Si vous ne l'utilisez pas et que ça vous gène, vous pouvez désactiver le raccourci dans votre vimrc en y ajoutant ((https://stackoverflow.com/a/28501574/6614155)) : | ||
+ | <code>map q <Nop></code> | ||
===== Configuration ===== | ===== Configuration ===== | ||
Ligne 130: | Ligne 148: | ||
^ Paramètre ^ Action ^ | ^ Paramètre ^ Action ^ | ||
| <code>set nocompatible</code> | Désactive la compatibilité avec vi | | | <code>set nocompatible</code> | Désactive la compatibilité avec vi | | ||
+ | | <code>set background=dark </code> | adapte les couleurs pour un fond noir | | ||
| <code>syntax on</code> | Active la coloration syntaxique | | | <code>syntax on</code> | Active la coloration syntaxique | | ||
| <code>set number</code> | Affiche les numéros de lignes | | | <code>set number</code> | Affiche les numéros de lignes | | ||
Ligne 138: | Ligne 157: | ||
| <code>set autoindent</code> | Conserve l'indentation courante sur les nouvelles lignes | | | <code>set autoindent</code> | Conserve l'indentation courante sur les nouvelles lignes | | ||
| <code>set backspace=indent,eol,start</code> | retours arrières intelligents | | | <code>set backspace=indent,eol,start</code> | retours arrières intelligents | | ||
- | | <code>set shiftround</code> | Indentation a la marque de Tab la plus proche | | + | | <code>set shiftround</code> | Indentation à la marque de Tab la plus proche | |
| <code>set ignorecase</code> | Ignore la casse lors de recherche | | | <code>set ignorecase</code> | Ignore la casse lors de recherche | | ||
| <code>set showmode</code> | affiche le mode d'édition | | | <code>set showmode</code> | affiche le mode d'édition | | ||
| <code>set ruler</code> | affiche la position du curseur | | | <code>set ruler</code> | affiche la position du curseur | | ||
| <code>set showcmd</code> | affiche les commandes incomplète | | | <code>set showcmd</code> | affiche les commandes incomplète | | ||
+ | |<code>map <C-m> :resize<CR> </code>| Ctrl-m maximize la fenetre courrante (:help map)| | ||
+ | |<code>map <C-b> :bNext<CR></code>| Ctrl-b aller au tampon suivant (:help map)| | ||
Si vim ne se souvient pas de la position précédente du curseur lorsque vous réouvrez un fichier, il faut ajouter la ligne suivante dans le fichier ~/.vimrc: | Si vim ne se souvient pas de la position précédente du curseur lorsque vous réouvrez un fichier, il faut ajouter la ligne suivante dans le fichier ~/.vimrc: | ||
Ligne 155: | Ligne 176: | ||
<note> Si vous avez l'erreur "Sorry, the command is not available in this version: syntax on", vous utilisez surement vim-tiny et non vim "complet". Pour y remédier, [[:tutoriel:comment_supprimer_un_paquet| supprimez le paquet]] **vim-tiny** et [[:tutoriel:comment_installer_un_paquet|ré-installez le paquet]] **vim** | <note> Si vous avez l'erreur "Sorry, the command is not available in this version: syntax on", vous utilisez surement vim-tiny et non vim "complet". Pour y remédier, [[:tutoriel:comment_supprimer_un_paquet| supprimez le paquet]] **vim-tiny** et [[:tutoriel:comment_installer_un_paquet|ré-installez le paquet]] **vim** | ||
- | Vous pouvez pouvez aussi utiliser la commande suivante et choisir vim.gnome : <code>sudo update-alternatives --config vim</code> | + | Vous pouvez aussi utiliser la commande suivante et choisir vim.gnome : <code>sudo update-alternatives --config vim</code> |
</note> | </note> | ||
==== Vim supporte les souris ==== | ==== Vim supporte les souris ==== | ||
- | Le service **gpm**((**gpm** : General Purpose Mouse interface http://www.nico.schottelius.org/software/gpm/)) permet l'utilisation de la souris dans le terminal pour sélectionner, copier et coller. Vérifiez que le paquet [[apt://gpm|gpm]] est [[:tutoriel:comment_installer_un_paquet|installé]] et [[:tutoriel:comment_modifier_un_fichier|modifiez votre fichier]] ~/.vimrc comme expliqué plus haut pour y insérer : | + | Le service **gpm**((**gpm** : General Purpose Mouse interface https://www.nico.schottelius.org/software/gpm/)) permet l'utilisation de la souris dans le terminal pour sélectionner, copier et coller. Vérifiez que le paquet [[apt://gpm|gpm]] est [[:tutoriel:comment_installer_un_paquet|installé]] et [[:tutoriel:comment_modifier_un_fichier|modifiez votre fichier]] ~/.vimrc comme expliqué plus haut pour y insérer : |
<code>set mouse=a</code> | <code>set mouse=a</code> | ||
Ligne 176: | Ligne 197: | ||
set t_Co=88 | set t_Co=88 | ||
</code> | </code> | ||
- | Il est cependant nécessaire que le thème ait été pensé à la fois pour la GUI et le terminal. Si ce n'est pas le cas du thème que vous avez choisi, le plus simple est d'utiliser le plugin [[http://www.vim.org/scripts/script.php?script_id=1809|guicolorscheme]]. | + | Il est cependant nécessaire que le thème ait été pensé à la fois pour la GUI et le terminal. Si ce n'est pas le cas du thème que vous avez choisi, le plus simple est d'utiliser le plugin [[https://www.vim.org/scripts/script.php?script_id=1809|guicolorscheme]]. |
- | * [[http://phollow.fr/2010/11/5-themes-vim-pour-frimer-devant-les-filles/?utm_source=rss&utm_medium=rss&utm_campaign=5-themes-vim-pour-frimer-devant-les-filles|5 thèmes VIM pour frimer devant les filles]] | + | |
+ | Nota : les thèmes installés par défaut se trouvent dans le répertoire /usr/share/vim/vim**xx**/colors ou xx correspond à la version en cours, 74 ou 80 à ce jour | ||
+ | |||
+ | ===== Extensions, plugins et packages ===== | ||
+ | Il existe de nombreuses extensions à VIM, notamment pour les développeurs, pour ajouter des fonctionnalités telle que l'arborescence du répertoire de travail, la liste des fonctions/variables, des colorations spécifiques… | ||
+ | |||
+ | Pour lister les plugins installés, dans VIM, tapez la commande: | ||
+ | <code>:scriptnames </code> | ||
+ | |||
+ | ==== Les plugins ==== | ||
+ | C'est assez simple, ils se composent généralement de deux fichiers, un //.vim// et un //.txt//. | ||
+ | Le //.vim// peut simplement être déposé dans ///usr/share/vim/vim80/plugin///,\\ | ||
+ | le //.txt// dans ///usr/share/vim/vim80/doc/// | ||
- | Nota : les thèmes installés par défaut se trouvent dans le répertoire /usr/share/vim/vim**xx**/colors ou xx correspond à la version en cours, 73 à ce jour | + | ==== Les packages ==== |
+ | C'est plus compliqué, mais il existe des outils, tel que [[https://github.com/tpope/vim-pathogen|Pathogen]] ou [[https://github.com/VundleVim/Vundle.vim|Vundle]] pour simplifier leur installation | ||
===== Pour aller plus loin ===== | ===== Pour aller plus loin ===== | ||
- | * [[http://www.vim.org/]] -- Site officiel (en) | + | * [[https://www.vim.org/]] -- Site officiel (en) |
- | * [[http://www.gentoo.org/doc/fr/vi-guide.xml|Apprendre vi, la technique de "la feuille de triche"]] | + | |
- | * [[http://cfennajoui.net/vim/|Traduction de la documentation de Vim (miroir)]] | + | |
* [[ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf|Vim book (fichier PDF, anglais)]] | * [[ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf|Vim book (fichier PDF, anglais)]] | ||
- | * [[http://www.swaroopch.com/notes/Vim_fr:Table_des_Mati%C3%A8res|Traduction française du livre: A byte of Vim]] | + | * [[https://arolla.developpez.com/tutoriels/programmation/editeurs-code/dompter-vim-en-trois-temps/|Tuto sur developpez.com]] |
- | * [[http://www.siteduzero.com/tutoriel-3-88344-vim-l-editeur-de-texte-du-programmeur.html|Tuto du site du zéro]] | + | * [[https://yannesposito.com/Scratch/fr/blog/Learn-Vim-Progressively/|Apprendre Vim progressivement]] |
- | * [[http://vim-fr.org/index.php/Accueil|Wiki Francophone de Vim]] | + | * [[https://touticphoto.fr/assistance-informatique/30-editeur-de-texte-vim|Quelques notes de prises en main sur Vim]] |
+ | * [[https://github.com/dpelle/vim-Grammalecte|Plugin Grammalecte]] étendre les fonctionnalités de VIM avec un Correcteur grammatical dédié à la langue française. | ||
---- | ---- | ||
- | --- //refonte [[:utilisateurs:YoBoY|YoBoY]]// | ||
- | --- //Ajouts à la section "Configuration" [[:utilisateurs:Mr_Djez|Mr_Djez]]// | + | //Contributeurs : [[:utilisateurs:YoBoY|YoBoY]], [[:utilisateurs:Mr_Djez|Mr_Djez]], [[:utilisateurs:bcag2|bcag2]]// |