Comment basculer entre plusieurs vim configurations avec une commande locale ou fichiers vimrc?
Je travail dans plusieurs groupes, dont chacun a son propre onglet/indentation/normes d'espacement dans C.
Est-il un moyen d'avoir séparé sélectionnable VIM configurations pour chaque donc, quand j'ai modifier un fichier, soit:
- Je fais quelque chose comme
set group=1
pour sélectionner une configuration - un local .vimrc qui vit dans le répertoire de travail est utilisé pour définir la configuration automatiquement
- Vérifiez ceci: stackoverflow.com/a/14407951/1099240
- Voir aussi la question Alterner entre les deux vim configurations sur le super-utilisateur.
Vous devez vous connecter pour publier un commentaire.
En Résumé
Il ya quelques façons de le faire, dont la plupart ont été suggérées, mais j'ai pensé que je devais résumer avec deux de plus:
~/project1
et vous avez~/project1/.vim.custom
et necd ~ ; vim project1/file.c
, les paramètres personnalisés ne sera pas trouvé.De numérisation pour un en-Tête
Dans beaucoup d'organisations, il y a un en-tête standard (avec un avis de droit d'auteur et le nom du projet, etc) en haut de chaque fichier source. Si c'est le cas, vous pouvez obtenir Vim pour scanner automatiquement la première (par exemple) 10 lignes du fichier à la recherche pour un mot clé. Si il le trouve, il peut modifier vos paramètres. J'ai modifié cela pour faire plus simple que la forme que j'utilise (ce qui fait beaucoup d'autres choses), mais de créer un
~/.vim/after/filetype.vim
(si vous n'en avez pas encore) et d'ajouter quelque chose comme ceci:Chaque fois qu'un fichier de n'importe quel type s'ouvre et le fichier est de type set (le
au FileType *
ligne), leConfigureFiletypes
fonction est appelée. Celui-ci vérifie que le type de fichier dans la liste des types de fichier associée avec le groupe actuel (GROUPNAME), dans ce cas, 'c', 'rpc', 'vhdl' ou 'c.doxygen'. Si elle l'est, elle appelle CheckForGROUPNAMECode(), qui lit les 10 premières lignes du fichier et si elles contiennent GROUPNAME, il fait un peu de personnalisation. Ainsi que la mise en expandtabs ou que ce soit, cela change aussi la barre d'état pour afficher le nom du groupe clairement alors que vous savez qu'il est travaillé en un clin d'œil.La vérification de la Configuration Lors de l'Ouverture de
Comme JS Bangs " suggestion, d'avoir un fichier de configuration personnalisé peut être utile. Cependant, au lieu de le charger dans vimrc, pensez à quelque chose de ce genre, qui va vérifier si une .c fichier est ouvert pour un .vim.personnalisé dans le même répertoire que le .c fichier.
J'ai cela en
$HOME/.vimrc
:Cela me permet de mettre un
.vim.custom
de fichiers dans chaque répertoire pour charger les commandes et les options spécifiques à ce répertoire. Si vous travaillez sur plusieurs projets qui ont profondément les structures de répertoires que vous pourriez avoir besoin quelque chose de plus sophistiqué (par exemple, marcher jusqu'à l'arborescence de répertoires jusqu'à ce qu'un.vim.custom
est), mais la même idée de base fonctionne.Mise à JOUR:
Que je fais maintenant quelque chose comme cela dans le but de lire un
.vim
fichier dans le même répertoire que le fichier que je suis en train de monter, indépendamment de ce que le répertoire en cours.'exrc'
option permet déjà de faire quelque chose de très similaire à cela. Il va charger un.vimrc
/.exrc
/.gvimrc
dans le répertoire de travail courant.exrc
devrait être la bonne réponse. Tout le reste semble o hacky et compliqué.exrc
est gentil, mais j'apprécie d'obtenir le bon fichier, même si je ne suis pas dans le même répertoire que le fichier que je suis en train de modifier..vim
dans le dossier en cours, qui votre mini-plugin serait de lire. Je suppose que si vous téléchargez un code malveillant tous les paris sont éteints mais ce qui semble le rendre plus facile.Vous pouvez aussi mettre autocommands dans votre
.vimrc
qui définir des options spécifiques par chemin de base.Plugin faire la bonne chose:
http://www.vim.org/scripts/script.php?script_id=441
“Ce plugin recherche locale vimrc fichiers dans l'arborescence du système de fichier du fichier actuellement ouvert. Par défaut, il recherche tous ".lvimrc" des fichiers à partir du répertoire du fichier à la racine du répertoire et des charges dans l'ordre inverse. Le nom de fichier et le montant de chargement des fichiers est personnalisable grâce à des variables globales.”
En supposant que vos collègues développeurs de ne pas se plaindre à ce sujet, vous pouvez toujours ajouter vim paramètres de chaque fichier dans les commentaires.
J'ai créé un projet "open source" de l'outil à cette fin. Oubliez les en-têtes, de numérisation, de configurations, et local vimrc fichiers.
Essayer de nager.
Nager
swim
est un outil rapide pour la commutation vimrc fichiers et la création de pratique des alias. Voici une courte liste de l'utilisation. Voir la Dépôt Github une soluce gif et les instructions de téléchargement:D'utilisation
Lire Plus
https://github.com/dawsonbotsford/swim
Après avoir essayé le localvimrc plugin proposé par le commentaire précédent, j'aime beaucoup de non-futzy par projet de contrôle sur vim paramètres.
Il n'demander confirmation avant de charger une .lvimrc de fichier par défaut, mais il y a un paramètre à se charger automatiquement .lvimrc fichiers. Certains pourraient voir cela comme un trou de sécurité, mais il fonctionne comme annoncé.
Que j'ai choisi .gitignore l' .lvimrc fichiers. Sinon, vous pouvez les consulter en tant que forme de partage des paramètres (onglet/espace expansion, tabulations, d'autres configurations spécifiques au projet).
.lvimrc
fichier à.gitignore
? Le point est que tout le monde qui utilise vim et a installé le plugin obtient les mêmes paramètres.Comme mentionné par traîneau l'utilisation de ce plug-in est la meilleure option que j'ai vu et utiliser. jerseyboy indiqué que l'utilitaire recommandé de demander confirmation avant le chargement (ie. après l'ouverture de chaque fichier). Pour éviter ce juste mis à votre principal
.vimrc
la liste des locaux.lvimrc
fichiers:let g:localvimrc_whitelist='/development/kernel/.lvimrc'
Ici une variation sur le jamessan de
Je vais souvent lancer vi sans un fichier spécifique que je suis de sauter à donc cela permet de chargement config conditionnelle basée sur le répertoire de travail courant. Inconvénient, c'est que la config n'est pas basé sur fichier, mais hors de répertoire de travail.
~/.vimrc
, changé/src/mobile
à mes projets Symfony répertoire (dans mon cas c'était/www/symfony
) et modifié.vim.mobile
à.vim.symfony
ensuite placé à nouveau .vimrc config à l'intérieur de~/.vim.symfony
fichierÀ la recherche pour la plupart du temps la même question, j'ai aussi trouvé que la Sauce plug-in: http://www.vim.org/scripts/script.php?script_id=3992
Il affirme:
Je trouve particulièrement intéressant que ça la garde de configuration de tous, dans son répertoire de données au lieu de demander à l'utilisateur de saupoudrer les fichiers de configuration utilisateur à travers le système de fichiers. Bien souvent plutôt une metter de goût personnel.
Je n'ai pas encore tester mais.