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 07/06/2024, 15:01] Primaliax [Correcteur(s) orthographique(s)] |
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 128: | Ligne 143: | ||
# pour l'activer : | # pour l'activer : | ||
:set spell | :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, | # qui va sans doute surligner beaucoup de mot… car la correction est évidemment par défaut en anglais, | ||
# pour passer en français : | # pour passer en français : | ||
Ligne 153: | 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 170: | 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 178: | 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 196: | 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 224: | Ligne 242: | ||
=== Indiquer (forcer) la coloration syntaxique === | === 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//\\ | + | 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 : |
- | Pour cela, il faut saisir dans vim : | + | |
<code bash># :set syntax=<type de syntaxe> | <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 | :set syntax=messages | ||
+ | # pour un fichier .env.local ou similaire : | ||
+ | :set syntax=sh | ||
</code> | </code> | ||
((src : https://stackoverflow.com/a/3853036/6614155))\\ | ((src : https://stackoverflow.com/a/3853036/6614155))\\ |