L’auto indentation ou auto indent est un élément important lorsque l’on code.
Si vous passez votre temps sous Linux dans la ligne de commande, vous utilisez probablement Vim comme éditeur de texte par défaut. Vim est un éditeur de texte puissant et moderne doté de nombreuses fonctionnalités adaptées au travail dans le terminal.
Bien que Vim soit un incroyable éditeur de texte, sa prise en main et son utilisation pour effectuer des opérations de base peuvent être décourageantes. Par conséquent, l’acquisition des concepts de base contribuera à réduire le sentiment d’accablement lors de l’utilisation de Vim.
Ce guide se concentre sur une fonctionnalité essentielle de Vim : l’indentation lors de l’édition de fichiers.
Table des matières
- 1 Les différents types d’indentation de Vim
- 2 Comment activer l’indentation automatique dans Vim
- 3 Comment activer l’indentation intelligente de vim
- 4 Comment activer l’auto-indent de façon permanente
- 5 Comment configurer l’espacement et tabulation de vim
- 6 Comment désactiver l’indentation automatique dans Vim ?
- 7 Liens
Les différents types d’indentation de Vim
Voici les différents méthodes d’indentation disponibles dans vim :
- Autoindent – cette méthode utilise l’indentation de la ligne précédente pour le type de fichier que vous éditez
- smartindent – fonctionne de manière similaire à autoindent mais reconnaît la syntaxe de certains langages comme le langage C.
- cindent – est légèrement différent de autoindent et smartindent car il est plus intelligent et est configurable pour différents styles d’indexation.
- indexexpr – est le plus efficace et le plus flexible. Il utilise des expressions pour calculer l’indentation d’un fichier. Lorsqu’elle est activée, indexexpr a là priorité
L’autoindent s’appuie sur la détection de fichiers qui s’active avec la commande :filetype.
La détection du type de fichier utilise plusieurs scripts vim qui sont stockés dans le répertoire d’exécution de vim. Un emplacement courant pour ce répertoire est /usr/share/vim/vim[xy]/ où [xy] est le numéro de version de vim.
Le premier de ces scripts est filetype.vim. Ce script est exécuté chaque fois que vous ouvrez ou créez un nouveau fichier. Il essaiera de détecter le type de fichier qui est ouvert par son extension et, dans certains cas, par son contenu.
Si un type de fichier est détecté avec succès, vim cherchera un plugin pour ce type de fichier. Les plugins sont situés dans un sous-répertoire nommé ftplugins/.
De même, si l’indentation est activée, vim chargera les fichiers d’indentation qui sont situés dans le sous-répertoire indent/.
Comment activer l’indentation automatique dans Vim
Comment activer auto indent lors de l’édition
Pour activer l’indentation automatique de vim, utilisez la commande suivante :
:set autoindent
Vous pouvez abréger la commande comme ceci :
:set ai
Pour désactiver l’indentation automatique de vim :
:set noautoindent
Là aussi, il existe une version plus courte :
:set noai
Vous pouvez également définir la fonction d’indentation en utilisant la commande :
:filetype indent on
Ce paramètre permet d’indenter automatiquement les fichiers en fonction de leur type. Pour vérifier si le type de fichier est pris en charge, entrez :
:filetype
Comment activer l’indentation intelligente de vim
L’indentation automatique ne fait que copier l’indentation de la ligne en cours et l’applique à la ligne suivante que vous créez. Il existe une autre option appelée indentation intelligente. L’indentation intelligente essaiera de détecter comment le code devrait être indenté par le style du code. Cette option n’est généralement utile que pour les programmes de type C.
Pour activer l’indentation intelligente, il suffit d’exécuter la commande :
:set smartindent
Pour désactiver l’indentation intelligente, exécutez la commande inverse :
:set nosmartindent
Comment activer l’auto-indent de façon permanente
Lorsque vous passez la commande vim, elles sont perdues au moment de la fermeture.
L’éditeur rejoue la configuration à partir du fichier de configuration.
Pour rendre l’indentation automatique permanente, modifiez le fichier de configuration comme ceci :
- Editez le fichier /etc/vim/vimrc ou ~/.vimrc
- Puis ajoutez la déclaration suivante :
filetype indent on
filetype plugin indent on
set si
set ai
Comment configurer l’espacement et tabulation de vim
De nombreuses personnes préfèrent utiliser 2 ou 4 espaces plutôt qu’une seule tabulation.
Cela peut être un bon moyen de s’assurer que le code est formaté de manière cohérente dans l’éditeur dans lequel il est ouvert. Mais, qui voudrait appuyer 4 fois sur l’espace au lieu d’appuyer une fois sur la touche de tabulation ?
Il existe une solution simple à ce problème : expandtab.
Il étend chaque onglet à un certain nombre d’espaces.
Pour activer cette option, il suffit de taper :
:set expandtab
Et pour la désactiver, il suffit d’ajouter no devant la commande :
:set noexpandtab
Maintenant, il ne vous reste plus qu’à définir le nombre d’espaces que vous souhaitez pour chaque onglet.
Pour ce faire, vous aurez besoin de deux options, tabstop et shiftwidth.
La valeur de tabstop détermine le nombre d’espaces à insérer pour chaque onglet.
Shiftwidth détermine le nombre d’espaces qui constituent un niveau d’indentation.
Donc, si vous voulez une indentation automatique de 4 espaces au lieu d’une tabulation, entrez ce qui suit dans votre session vim ou mettez-le dans votre fichier vimrc.
:set expandtab
:set tabstop=4
:set shiftwidth=4
Vous pouvez également faire tout cela avec une seule ligne de commande. Par exemple, si vous voulez faire une indentation automatique de 2 espaces. Vous pouvez entrer toutes les lignes ci-dessus comme ceci :
:set tabstop=2 shiftwidth=2 expandtab
Comment désactiver l’indentation automatique dans Vim ?
Enfin pour désactiver l’indentation automatique lors de l’édition d’un fichier, passez les commandes suivantes :
:set noautoindent
:set indentexpr=
:set nocindent
:set nosmartindent