web-dev-qa-db-fra.com

Comment faire une recherche insensible à la casse dans Vim

Je voudrais rechercher un mot majuscule, par exemple COPYRIGHT dans un fichier. J'ai essayé d'effectuer une recherche comme:

/copyright/i    # Doesn't work

mais ça ne marche pas. Je sais qu'en Perl, si je donne le drapeau i dans une expression rationnelle, il transformera cette expression rationnelle en une expression rationnelle insensible à la casse. Il semble que Vim a sa propre manière d’indiquer une expression rationnelle insensible à la casse.

1533
Haiyuan Zhang

Vous devez utiliser la séquence d'échappement \c. Alors:

/\ccopyright

Pour faire l'inverse (casse sensible correspondance), utilisez plutôt \C.

1940
Chinmay Kanchi

En plus des suggestions pour \c et ignorecase, je trouve la smartcase très utile. Si vous recherchez quelque chose contenant des caractères majuscules, la recherche sera sensible à la casse; si vous recherchez quelque chose de purement minuscule, la recherche sera insensible à la casse. Vous pouvez utiliser \c et \C pour remplacer ceci:

:set ignorecase
:set smartcase
/copyright      " Case insensitive
/Copyright      " Case sensitive
/copyright\C    " Case sensitive
/Copyright\c    " Case insensitive

Voir:

:help /\c
:help /\C
:help 'smartcase'
639
DrAl

Vous pouvez définir l'option ic dans Vim avant la recherche:

:set ic

Pour revenir aux recherches sensibles à la casse, utilisez:

:set noic

ic est un raccourci pour ignorecase

271
Nathan Fellman

Vous pouvez donner la commande

:set ignorecase

et après cela, vos recherches seront insensibles à la casse.

55
Paolo Tedesco

Pour basculer entre la recherche sensible à la casse et non sensible, j'utilise ce mappage dans mon fichier .vimrc.

nmap <F9> :set ignorecase! ignorecase?

44
vbd

Comme d'autres l'ont suggéré:

:set ic

Mais le truc cool est que vous pouvez basculer de tels modes avec:

:set ic!
20
fane89

Vous pouvez utiliser dans votre vimrc ces commandes:

  • set ignorecase - Toutes vos recherches seront insensibles à la casse
  • set smartcase - Votre recherche sera sensible à la casse si elle contient une lettre majuscule

Vous devez définir ignorecase si vous souhaitez utiliser ce que smartcase fournit.

J'ai récemment écrit n article sur les commandes de recherche Vim (à la fois une commande intégrée et les meilleurs plugins pour effectuer une recherche efficace).

19
Matthieu

mettre cette commande dans votre fichier vimrc

set ic 

toujours faire des recherches insensibles à la casse

18
WALID BELRHALMIA

La bonne vieille vim[grep] commande ..

:vimgrep /example\c/ &
  • \c pour insensible à la casse
  • \C pour sensible à la casse
  • % est de chercher dans le tampon courant

enter image description here

14
Mick

Je préfère utiliser \c à la fin de la chaîne de recherche:

/copyright\c
11
Nick Tsai

Comme @huyz mentionne parfois, le comportement souhaité consiste à utiliser des recherches non sensibles à la casse, mais des substitutions sensibles à la casse. Ma solution pour cela:

nnoremap / /\c
nnoremap ? ?\c

Avec cela, toujours lorsque vous appuyez sur / ou ?, il ajoutera \c pour la recherche sans distinction de casse.

8
pbogut

Vous pouvez définir ignorecase par défaut, exécutez-le dans Shell

echo "set ic" >> ~/.vimrc
3
Steely Wing

Vim a 2 modes

Mode 1.edit

  1. mode normal (Esc)

La recherche fonctionnera en mode normal

/\c pour sensible à la casse

/\c recherche

3
Gowthaman