Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
vim [Le 20/12/2021, 17:14]
90.27.236.139 [Tutoriel]
vim [Le 10/06/2024, 09:29] (Version actuelle)
bcag2 [Installation] note… neovim
Ligne 17: Ligne 17:
 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))\\ 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]]**.
 +<​note>//​vim-gnome//​ n'est plus disponible dans les dépôts standard à partir de [[:Jammy]], une alternative peut être [[:neovim]] </​note>​
 ===== Utilisation ====== ===== Utilisation ======
  
-==== Mettre en français la doc vim ==== 
-FIXME solution pour la v8… n'​existe pas? 
- 
-Pour la v7, télécharger tout d'​abord la traduction de la doc de vim sur le site : //​https://​web.archive.org/​web/​20161107043845/​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 39: 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)
- 
-<​del>​Vim dispose aussi d'un tutoriel francophone non-officiel en ligne : [[http://​vim-fr.org/​]]</​del>​ 
  
  
Ligne 50: Ligne 39:
 Si le fichier n'​existe pas il sera créé à l'​enregistrement. Si le fichier n'​existe pas il sera créé à l'​enregistrement.
  
-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 117: Ligne 106:
 Vous pouvez comparer le contenu de deux fichiers en lançant : Vous pouvez comparer le contenu de deux fichiers en lançant :
 <​code>​vimdiff fichier1 fichier2</​code>​ <​code>​vimdiff fichier1 fichier2</​code>​
-vimdiff peut-être remplacé par vim -d\\ +vimdiff peut être remplacé par vim -d\\ 
-Si vous êtes déjà dans vim en édition sur le fichier1: ​+Si vous êtes déjà dans vim en édition sur le fichier1:
 <​code>:​vert diffsplit fichier2</​code>​ <​code>:​vert diffsplit fichier2</​code>​
 si vous ne spécifiez pas //vert//, le "​split"​ sera horizontal (beaucoup moins pratique).\\ si vous ne spécifiez pas //vert//, le "​split"​ sera horizontal (beaucoup moins pratique).\\
-Ajoutez ​+Ajoutez
 <​code>​set diffopt=vertical</​code> ​ <​code>​set diffopt=vertical</​code> ​
 dans votre fichier //vimrc// pour que ce soit par défaut. dans votre fichier //vimrc// pour que ce soit par défaut.
Ligne 127: Ligne 116:
 ==== Édition hexadécimale ==== ==== Édition hexadécimale ====
  
-vim peut servir d'​[[wpfr>​éditeur hexadécimal]] (voir aussi hexedit) : après avoir ouvert votre fichier, tapez +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>​ <​code>:​%!xxd</​code>​
 pour revenir en édition normale <​code>:​%!xxd -r</​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 comme pour les autres utilisations (recherche, remplace...),​ vous pouvez remplacer % par un n° de ligne ou un intervalle
 +
 +!! Attention à bien éditer et sauvegarder en mode binaire sinon vous risquez de corrompre le fichier avec des auto tab et des conversions de retour à la ligne. vim -b pour lancer en mode binaire, ou :set binary pour activer le mode une fois vim lancé.
 +
 +==== Correcteur(s) orthographique(s) ====
 +Si vim est devenu votre éditeur quotidien et que vous y rédigez vos textes en markdown par exemple ou des pages html…, il peut être utile (indispensable !-) de faire appel à un correcteur orthographique.\\
 +Pour cela :
 +<​code>​
 +# pour l'​activer :
 +:set spell
 +# qui va sans doute surligner beaucoup de mot… car la correction est évidemment par défaut en anglais,
 +# pour passer en français :
 +:setlocal spell spelllang=fr
 +# le dictionnaire français n'​étant pas chargé par défaut, vim va vous proposer de le charger, répondre (Y) pour lancer le télé-chargement
 +</​code>​
 +^ Commande ^ Description ^
 +| z=       | sur un mot souligné affiche une liste de corrections possibles |
 +| zg       | rajoute un mot dans le dictionnaire |
 +| zug      | pour annuler l’ajout au dictionnaire |
 +| ]s       | pour aller au prochain mot mal orthographié |
 +| [s       | pour le précédent |
 +source et compléments :​ [[https://​www.saintcarre.fr/​saintcarre/​2018/​08/​correcteur-orthographe-vim.html|le blog de St-Carré]]
 +
 +
 +
  
 ==== Terminal ==== ==== Terminal ====
Ligne 137: Ligne 150:
  
 Pour sortir: <​code>​ <​Ctrl-D>​ </​code>​ ou <​code>​ «exit» </​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 saisit 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 finit 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 =====
  
-Pour modifier le comportement de vim, il faut agir sur son fichier de configuration (chaque utilisateur peut avoir le sien). Pour cela [[:​tutoriel:​comment_editer_un_fichier|créez ou éditez le fichier]] **~/​.vimrc** (le fichier vimrc global peut se trouver dans /​usr/​share/​vim/​vimrc ).+Pour modifier le comportement de vim, il faut agir sur son fichier de configuration (chaque utilisateur peut avoir le sien).\\ 
 +Pour cela [[:​tutoriel:​comment_editer_un_fichier|créez ou éditez le fichier]] **~/​.vimrc** (le fichier vimrc global peut se trouver dans /​usr/​share/​vim/​vimrc ).
  
 <note tip>​S'​il n'​existe pas de fichier .vimrc dans le dossier de l'​utilisateur,​ vim se lance en « compatibilité » avec vi. C'​est-à-dire qu'il va charger les options par défaut de vi, et non pas celles de vim. La simple existence de ce fichier suffit normalement à charger les options par défaut de vim, mais, par précaution,​ forcez la désactivation de cette compatibilité (en tout début de fichier, car ça change les options).</​note>​ <note tip>​S'​il n'​existe pas de fichier .vimrc dans le dossier de l'​utilisateur,​ vim se lance en « compatibilité » avec vi. C'​est-à-dire qu'il va charger les options par défaut de vi, et non pas celles de vim. La simple existence de ce fichier suffit normalement à charger les options par défaut de vim, mais, par précaution,​ forcez la désactivation de cette compatibilité (en tout début de fichier, car ça change les options).</​note>​
Ligne 146: Ligne 172:
 ^ 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>​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 154: Ligne 180:
 | <​code>​set smartindent</​code>​ | Indentation "​intelligents"​ | | <​code>​set smartindent</​code>​ | Indentation "​intelligents"​ |
 | <​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 à 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-m> :​resize<​CR>​ </​code>​| Ctrl-m ​Agrandit ​la fenêtre courante ​(:help map)| 
-|<​code>​map <C-b> :​bNext<​CR></​code>​| Ctrl-b ​aller au tampon suivant (:help map)|+|<​code>​map <C-b> :​bNext<​CR></​code>​| Ctrl-b ​Va 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 172: Ligne 198:
 Un fichier exemple est disponible également **/​usr/​share/​vim/​vimcurrent/​vimrc_example.vim** Un fichier exemple est disponible également **/​usr/​share/​vim/​vimcurrent/​vimrc_example.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**+<​note>​ Si vous avez l'​erreur "​Sorry,​ the command is not available in this version: syntax on", vous utilisez ​sûrement ​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 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 ====+==== Support des 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>​
  
 ====Thème de coloration syntaxique==== ====Thème de coloration syntaxique====
 Placez le thème dans ~/​.vim/​colors et activez le thème dans le .vimrc avec la ligne : Placez le thème dans ~/​.vim/​colors et activez le thème dans le .vimrc avec la ligne :
-<​code>​+<​code ​bash>
 colorscheme nom_du_theme colorscheme nom_du_theme
 </​code>​ </​code>​
 Si vous utilisez vim dans un terminal, il est possible que votre thème ne soit pas utilisé, et qu'il n'y ait pas de coloration syntaxique. Il faut donc forcer les couleurs en ajoutant dans le .vimrc la ligne suivante : Si vous utilisez vim dans un terminal, il est possible que votre thème ne soit pas utilisé, et qu'il n'y ait pas de coloration syntaxique. Il faut donc forcer les couleurs en ajoutant dans le .vimrc la ligne suivante :
-<​code>​+<​code ​bash>
 set t_Co=256 set t_Co=256
 </​code>​ </​code>​
 Si votre terminal ne supporte que 88 couleurs : Si votre terminal ne supporte que 88 couleurs :
-<​code>​+<​code ​bash>
 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]].
  
 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 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
  
 +=== Indiquer (forcer) la coloration syntaxique ===
 +Il peut-être pratique de pouvoir indiquer la coloration syntaxique, en particulier lorsqu'​on édite des fichiers sans extension (ou non représentative du type de fichier), par exemple lire le fichier ///​var/​log/​syslog.1//​\\
 +Pour cela, il faut saisir dans vim :
 +<code bash># :set syntax=<​type de syntaxe>
 +:set syntax=messages
 +</​code>​
 +((src : https://​stackoverflow.com/​a/​3853036/​6614155))\\
 +Pour connaître la liste des types, <code bash>cd /​usr/​share/​nvim/​runtime/​syntax && grep -rn "​Language:"</​code>​
 ===== Extensions, plugins et packages ===== ===== 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… 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…
Ligne 214: Ligne 248:
  
 ===== Pour aller plus loin ===== ===== Pour aller plus loin =====
-  * [[http://​www.vim.org/​]] -- Site officiel (en) +  * [[https://​www.vim.org/​]] -- Site officiel (en)
-  * [[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://​arolla.developpez.com/​tutoriels/​programmation/​editeurs-code/​dompter-vim-en-trois-temps/​|Tuto sur developpez.com]] +  * [[https://​arolla.developpez.com/​tutoriels/​programmation/​editeurs-code/​dompter-vim-en-trois-temps/​|Tuto sur developpez.com]] 
-  * [[http://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/vim-l-editeur-de-texte-du-programmeur|Tuto sur openclassroom (ex 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.   * [[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]]//
  • vim.1640016868.txt.gz
  • Dernière modification: Le 20/12/2021, 17:14
  • par 90.27.236.139