2010-08-11 2 views
7

J'ai remarqué que git semble utiliser différents paramètres vim chaque fois que j'écris un message de validation. J'ai l'installation de Macports git+svn, et j'ai vérifié la variable $MYVIMRC: il est réglé sur le bon fichier. Pourtant, chaque fois que je vais commettre un message, j'ai une restriction sur 80 caractères par ligne, recherche sensible à la casse, et aucun des plugins que j'ai installés.Vim utilisant une configuration non standard lorsqu'il est appelé depuis «git commit»?

C'est probablement quelque chose de stupide. Apprécierait un pointeur sur ce que c'est.

EDIT: En fait je viens de vérifier: mes plugins fonctionnent. Seule la largeur de colonne de 80 caractères est miraculeusement vivante lorsque je tape des messages de validation.

+0

Etes-vous sûr votre éditeur est défini sur Vim?Git pourrait utiliser une implémentation Vi différente. – strager

+0

En fait, je viens de vérifier: mes plugins fonctionnent. Seule la largeur de colonne de 80 caractères est miraculeusement vivante lorsque je tape des messages de validation. Et oui, mon core.editor est le même que celui que j'utilise pour tout le reste. – dmkc

+2

Cela n'appartient * pas * au super-utilisateur. Lire la FAQ: SO est le lieu de questions sur "les outils logiciels couramment utilisés par les programmeurs". Qui utilise couramment git et vim? – Cascabel

Répondre

15

Ce n'est pas un bug, c'est une fonctionnalité! Vim connait beaucoup de types de fichiers - y compris les commit git (et les rebas interactifs, et les config ...). Il y a des définitions de syntaxe et des ftplugins (plugins activés par type de fichier) pour chacun d'entre eux. L'un des paramètres du commit ftplugin est textwidth=72. Ceci est fait pour que la sortie de git log apparaisse bien dans un terminal de largeur standard. Si vous voulez vraiment le changer, vous pouvez modifier le plugin, mais je vous recommande vraiment de le garder. Le module d'extension doit être <vim-directory>/vimXX/ftplugin/gitcommit.vim. Le XX est le numéro de version, par ex. 72 pour la version 7.2, et le composant principal est généralement quelque chose comme /usr/share/vim.

P.S. Le plugin définit également une commande DiffGitCached, qui va ouvrir le diff à valider dans une fenêtre de prévisualisation. Pratique!

+0

Ceci est à la fois la réponse la plus rapide et la plus complète. Merci! Et d'accord, tu m'as dit de ne pas le toucher :). – dmkc

+0

@mitjak: Oh chéri, jamessan était en fait avant le mien, mais merci! – Cascabel

+0

Mais .. l'horodatage .. Étrange. – dmkc

4

:verbose set textwidth? formatoptions? vous indiquera les valeurs de ces options et quel script les a définies en dernier. Le texte est seulement dur-emballé en tapant si 'textwidth' est différent de zéro et 'formatoptions' contient le paramètre t. Il est probable que le plugin gitcommit filetype (ftplugin/gitcommit.vim) modifie l'une ou l'autre de ces options car vous avez activé les plugins filetype (:filetype montre plugin:ON).

1

réponse partielle, peut-être utile ...

Selon ps aux, git commence vim avec cette commande:

vim .git/COMMIT_EDITMSG 

Cela déclenche le mode de syntaxe gitcommit qui, sur mon système Ubuntu vit dans

/usr/share/vim/vimcurrent/syntax/gitcommit.vim 

et est chargé à partir

/usr/share/vim/vimcurrent/filetype.vim 
+1

Il n'y a pas que la syntaxe - il y a un ftplugin! – Cascabel

1

FWIW, j'ai eu un problème similaire - Vim a été handicapant mon réglage textwidth dans les fichiers txt parce que l'un des plug-ins de filetype étant appelé a la ligne « formatoptions - = t »

Au lieu de modifier les plug-ins (ce qui m'a rendu inconfortable), j'ai contourné le problème en ajoutant la ligne ": filetype plugins off" à mon fichier ~/.vimrc. La solution a été détaillée ici - (. Je pensais à l'origine du problème était lié à git, mais après le test dans un répertoire non-git Je l'ai trouvé était dû à l'extension de fichier .txt) http://peox.net/articles/vimconfig.html