Saisie semi-automatique de vim: comment empêcher vim de lire certains fichiers include?

10

Vim a une touche Ctrl-N pratique qui complète automatiquement le mot sous le curseur avec le mot dans le fichier actuel ou tout fichier inclus. Si une fois que j'inclus la bibliothèque de boost, cette fonctionnalité devient absolument inutile car il faut des dizaines de secondes pour lire des boost inclus et je ne veux vraiment pas terminer quoi que ce soit qui soit défini dans boost de toute façon. Alors, comment puis-je dire à vim d'ignorer le répertoire / usr / include / boost lors de la recherche de fichiers d'inclusion? Oh, comment puis-je définir l'option 'include' pour ignorer tout #include <boost /.*>?


la source

Réponses:

16

L'option que vous recherchez est «complète» , mais elle ne définit pas la granularité que vous demandez. Tout ce que vous pouvez faire est de spécifier s'il faut ou non analyser les fichiers inclus. Pour désactiver l'analyse de tous les fichiers inclus, vous pouvez

set complete-=i

Sinon, le réglage 'include'pour ignorer le boost peut être votre meilleure option.

set include=^\\s*#\\s*include\ \\(<boost/\\)\\@!

Notez que, comme je l'ai mentionné dans mon autre commentaire, vous ne devez pas utiliser "pour spécifier l'option car il s'agit du caractère de commentaire de Vim. Au lieu de cela, vous devez échapper aux espaces.

jamessan
la source
1

Ok, j'ai trouvé la réponse à la deuxième partie:

set include="#include \\(<boost\\)\\@!"

la source
En fait, vous venez de désactiver l'option d'inclusion. "est le personnage de commentaire de Vim, vous avez donc essentiellement exécuté 'set include ='.
jamessan