Présentation
Vim et son ancien homologue Vi sont des éditeurs de texte largement utilisés. Ils sont tous deux open source (gratuits) et disponibles sur la plupart des distributions Linux et macOS.
La recherche de mots ou de modèles dans Vim/Vi est une tâche courante qui vous permet de naviguer facilement dans des fichiers volumineux.
Ce tutoriel vous montre comment effectuer une recherche dans Vim/Vi avec des exemples pratiques.
Important :Assurez-vous que vous êtes en mode normal avant de commencer la recherche. Cela permet de naviguer dans le texte tout en utilisant les commandes normales de l'éditeur. Vi et Vim ouvrent un fichier en mode normal par défaut.
Pour passer en mode normal, appuyez sur Échap .
Recherche de base dans Vim / Vi
Il existe deux manières de rechercher un motif de chiffres ou de lettres dans l'éditeur de texte Vim/Vi.
1. Recherche vers l'avant pour le motif spécifié
2. Rechercher en arrière pour le motif spécifié
La direction est déterminée par rapport à la position du curseur.
Rechercher en avant le résultat suivant d'un mot
Pour rechercher vers l'avant , utilisez la commande :
/pattern
Remplacer le pattern
avec le ou les éléments que vous souhaitez rechercher.
Par exemple, pour rechercher toutes les instances du modèle "root" , vous :
1. Appuyez sur Échap pour vous assurer que Vim/Vi est en mode normal.
2. Tapez la commande :
/root
L'éditeur de texte met en surbrillance la première occurrence du motif après le curseur. Dans l'image ci-dessous, vous pouvez voir que le résultat fait partie d'un mot qui contient le motif spécifié. C'est parce que la commande ne spécifie pas de rechercher des mots entiers.
À partir de cette position, sélectionnez Entrée et :
- passer à l'instance suivante du motif dans la même direction avec
n
- passez à l'instance suivante du motif dans la direction opposée avec
N
Rechercher un mot en arrière
Pour rechercher en arrière saisissez :
?pattern
Remplacer le pattern
avec le ou les éléments que vous souhaitez rechercher.
Par exemple, pour rechercher toutes les instances du modèle "nologin" , vous :
1. Appuyez sur Échap pour vous assurer que Vim/Vi est en mode normal.
2. Tapez la commande :
?nologin
Vim/Vi met en surbrillance la première instance du motif spécifié avant le curseur.
Appuyez sur Entrée pour confirmer la recherche. Ensuite, vous pouvez :
- passer à l'instance suivante du modèle dans la même direction avec
n
- passer à l'instance suivante du motif dans la direction opposée avec
N
Rechercher le mot actuel
Le mot courant est le mot où se trouve le curseur.
Au lieu de spécifier le motif et d'inviter Vim/Vi à le trouver, déplacez le curseur sur un mot et demandez-lui de trouver l'instance suivante de ce mot.
1. Tout d'abord, assurez-vous que vous êtes en mode normal en appuyant sur Échap .
2. Ensuite, déplacez le curseur sur le mot souhaité.
3. À partir de là, vous pouvez :
- Rechercher l'instance suivante du mot avec
*
- Rechercher l'instance précédente du mot avec
#
Chaque fois que vous appuyez sur *
ou #
le curseur passe à l'instance suivante/précédente.
Rechercher des mots entiers
Pour rechercher des mots entiers, utilisez la commande :
/\<word\>
L'éditeur de texte ne met en surbrillance que le premier mot entier précisément comme spécifié dans la commande.
Ouvrir un fichier à un mot spécifique
Vim (et Vi) peuvent ouvrir des fichiers à un mot spécifié vous permettant de sauter une étape et d'aller directement au terme recherché.
Pour ouvrir un fichier à un mot spécifique, utilisez la commande :
vim +/word [file_name]
ou
vi +/word [file_name]
Par exemple, pour ouvrir le fichier /etc/passwd fichier où il utilise pour la première fois le terme "root" , utilisez la commande :
vim +/root /etc/passwd
L'éditeur de texte ouvre le fichier et la première ligne qu'il affiche est celle contenant le terme "root" , comme dans l'image ci-dessous.
Recherche insensible à la casse
Par défaut, Vi(m) est sensible à la casse lors de la recherche dans le fichier. Par exemple, si vous recherchez le terme /user
il n'affiche pas les résultats avec le U en majuscule (c'est-à-dire, Utilisateur ).
Il existe plusieurs façons de rendre Vim/Vi insensible à la casse.
- Pour rechercher un mot spécifié avec l'attribut insensible à la casse, exécutez la commande :
/\<word\>\c
Le \c
ordonne à Vi(m) d'ignorer la casse et d'afficher tous les résultats.
- Une alternative consiste à configurer Vim pour qu'il ignore la casse pendant toute la session pour toutes les recherches. Pour ce faire, exécutez la commande :
:set ignorecase
- Enfin, le fichier de configuration peut être modifié pour que l'éditeur de texte ignore définitivement la casse. Ouvrez le ~/.vimrc fichier et ajoutez la ligne
:set ignorecase
.
Mettre en surbrillance les résultats de la recherche
Vi(m) a une fonction utile qui met en évidence les résultats de la recherche dans le fichier. Pour activer la surbrillance, saisissez la commande suivante dans l'éditeur de texte :
:set hlsearch
Pour désactiver cette fonctionnalité, exécutez :
:set !hlsearch
Historique des recherches
Vi(m) conserve la trace des commandes de recherche utilisées dans la session. Parcourez les commandes précédemment utilisées en tapant ?
ou /
et en utilisant le haut et vers le bas clés.