2011-07-28 5 views
2

J'ai gardé shiftwidth comme 4 dans mon fichier vimrc. Mais, quand j'ouvre beaucoup de fichiers c/h existants, ils ont shiftwidth comme 2. Donc, ceux-ci sont mélangés. Puis-je sélectionner automatiquement la largeur de décalage du fichier plutôt que de la définir à chaque fois que j'ouvre les fichiers?Choisir shiftwidth à partir du fichier

Répondre

6

Vous pouvez ajouter un modeline au bas du fichier:

/* vim: set sw=2: */ 

More on modelines.

+1

Battu à lui :-) @Manoj pour l'exhaustivité, faire un ': help modeline' pour en savoir plus à ce sujet –

+0

Merci les gars pour l'aide rapide! L'homme, vi/m a tout ce que vous voulez ... – Manoj

2

Oui, vous pouvez spécifier les paramètres à partir dans le fichier lui-même en utilisant un modeline, par exemple

/* vim: set ts=2 sw=2: */ 

Pour plus de détails, voir http://vim.wikia.com/wiki/Modeline_magic

4

Modelines ne sont pas la meilleure façon de s'y prendre pour résoudre, à mon avis. Les Modelines étaient (sont?) Vulnérables à un problème de sécurité. (Voir http://www.jukie.net/bart/blog/vim-modelines-insecure et http://secunia.com/advisories/25182/ pour plus d'informations)

Au lieu de cela, vous pouvez désactiver modelines et utiliser un plugin pour analyser les fichiers que vous ouvrez et régler automatiquement shiftwidth, tabstop et d'autres en fonction du code qui est déjà là. J'utilise YAIFA pour ce faire, mais il y en a d'autres sur vim.org.

+0

Merci. Je choisis ceci comme réponse la plus attendue. Il y a des centaines de fichiers existants, et il m'est difficile d'y ajouter la modeline sur chacun d'entre eux. (aussi, ils me vireront si je change inutilement les fichiers ... :)) Cela économisera, et restera seulement dans mon espace de travail/ – Manoj

+0

Un problème que je vois est, le temps d'ouverture du fichier a augmenté un peu peu ... – Manoj

Questions connexes