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?

Kal
la source
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.

Nathan Fellman
la source
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
Mushir
la source
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
Priya R
la source
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
NeeruKSingh
la source
3
Ce n'est pas ce que demande le PO.
Tous les travailleurs sont essentiels