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/04/2023, 15:04]
bcag2 [Macro] exécution @x
vim [Le 12/03/2025, 10:09] (Version actuelle)
bcag2 [Thème de coloration syntaxique] log, .env
Ligne 11: Ligne 11:
 orphelins d'​Ouganda (voyez : ":help uganda"​).</​note>​ orphelins d'​Ouganda (voyez : ":help uganda"​).</​note>​
  
 +Pour que //vim// soit l’éditeur par défaut pour l’éditions de tout fichier de configuration,​ il est intéressant d'​exécuter :​
 +<code bash>
 +select-editor ​
 +
 +Select an editor. ​ To change later, run '​select-editor'​.
 +  1. /​bin/​nano ​       <---- easiest
 +  2. /​usr/​bin/​vim.basic
 +  3. /​usr/​bin/​vim.tiny
 +  4. /bin/ed
 +
 +# ON CHOISIT vim.basic, donc le choix 2…
 +Choose 1-4 [1]: 2
 +</​code>​
 +et de le faire avec //sudo// pour que ce soit aussi le cas quand on éditer des fichiers système, par exemple quand on fait un //sudo crontab -e// ((cf. [[:​cron|CRON]] pour plus d'​infos)
  
 ===== Installation ====== ===== Installation ======
Ligne 17: Ligne 31:
 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 ======
  
Ligne 38: Ligne 53:
 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 105: Ligne 120:
 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>​
Ligne 115: Ligne 130:
 ==== É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
 +# pour le désactiver :
 +:set nospell
 +# 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 129: Ligne 170:
 Il est possible d'​enregistrer des macros associées à une lettre.\\ 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**\\ 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 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 fini l'​enregistrement en tapant **q**\\+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**\\ 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)) 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)) :+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>​ <​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, //root// aussi).\\ 
 +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 188:
 ^ 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 196:
 | <​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 214:
 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 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 : 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 :
Ligne 184: Ligne 226:
 ====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>​
Ligne 199: Ligne 241:
 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), pour cela, il faut saisir dans vim :
 +<code bash># :set syntax=<​type de syntaxe>
 +# par exemple pour avoir la coloration pour le fichier /​var/​log/​syslog.1 (en cours d'​édition) :
 +:set syntax=messages
 +# pour un fichier .env.local ou similaire :​
 +:set syntax=sh
 +</​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 222: Ligne 274:
  
 ---- ----
---- //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.1681995888.txt.gz
  • Dernière modification: Le 20/04/2023, 15:04
  • par bcag2