Recherche de mot dans vim?


145

Je peux rechercher des mots dans vim avec /word. Comment puis-je rechercher uniquement word, à l'exclusion des recherches sur word1et word2?


2
Double

Réponses:


207

comme ça:

/\<word\>

\< signifie le début d'un mot, et \> signifie la fin d'un mot,

Ajout du commentaire de @ Roe:
VIM fournit un raccourci pour cela. Si vous avez déjà un mot à l'écran et que vous souhaitez en trouver d'autres occurrences, vous pouvez placer le curseur sur le mot et appuyer sur '*'pour rechercher en avant dans le fichier ou '#'pour rechercher en arrière.


3
placer votre curseur sur un mot et appuyer sur * (avant) ou # (vers l'arrière) est un raccourci
falstro

1
pourquoi est-ce bénéfique vs juste faire: / word
jimh

3
@semja: disons que vous avez une variable 'data' et son indication valide 'data_valid'. Si je veux rechercher uniquement 'data' mais pas 'data_valid', alors '/ data' ne fera pas le travail. Je dois dire à vim où arrêter la correspondance avec le modèle.
Nathan Fellman

Cela échoue dans l'exemple suivant: 1word1Voir stackoverflow.com/a/22148017/2609994 pour une solution.
LSchueler

Existe-t-il une vimconfiguration pour le faire rechercher le mot exact sans envelopper la chaîne de recherche avec des caractères \<et \<?
truthadjustr le

77
  1. nom de fichier vim
  2. presse /
  3. tapez le mot que vous souhaitez rechercher
  4. appuyez sur Entrée

2
Quelqu'un pourrait-il expliquer pourquoi cela a pu recevoir des votes négatifs? A travaillé pour moi.
Kiee le

13
Parce que l'OP a demandé de rechercher spécifiquement "word". La solution publiée ici effectue essentiellement une recherche %word%, que ce soit son thiswordisawesomeou word56ou 26word.
Jguy

9
Aussi, parce que l'OP a déclaré explicitement qu'il connaissait la /commande. En tant que telle, cette réponse n'est pas du tout utile.
cmaster - réintégrer monica

27

Si vous travaillez sous Ubuntu, suivez les étapes:

  1. presse / et tapez le mot à rechercher
  2. Pour rechercher en avant, appuyez sur la touche 'SHIFT' avec * touche
  3. Pour rechercher en arrière, appuyez sur la touche 'SHIFT' avec la #touche

1
comment puis-je mettre en évidence le mot recherché?
jorge saraiva

3
@jorgesaraiva: Tout d'abord, vous obtiendrez probablement une réponse plus rapidement en posant une nouvelle question (plutôt que d'attendre que quelqu'un tombe sur ce commentaire 3 mois après l'avoir posé). Deuxièmement, vous pouvez faire :set hlsdans Vim pour mettre en évidence votre résultat de recherche. Pour désactiver la mise en évidence, faites:set nohls
Nathan Fellman

1
Cela ne fonctionne vraiment que si le premier résultat de faire /wordest exactement wordau lieu deword.+
pushkin

cela ne fonctionne pas pour moi sur une instance AWS ubuntu 18.04. en utilisant windows git-bash pour ssh sur le serveur ubuntu si cela est pertinent. bizarre.
CodingMatters

21

Pour la recherche de base:

  • / pattern - recherche vers l'avant le pattern
  • ? pattern - recherche en arrière
  • n - répéter la recherche vers l'avant
  • N - répéter en arrière

Certaines variables que vous voudrez peut-être définir:

  • : set ignorecase - insensible à la casse
  • : set smartcase - cas d'utilisation si des bouchons sont utilisés
  • : set incsearch - afficher la correspondance comme recherche

3
Ce n'est pas ce que demande le PO.
Tous les travailleurs sont essentiels
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.