8
votes

Vim en utilisant la configuration non standard lorsqu'il est appelé de `git commit`?

J'ai remarqué que Git semble utiliser différents paramètres VIM à tout moment, j'écris un message commettre. J'ai le git + svn Installez les MacPorts, et j'ai vérifié la variable $ MYVIMRC

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

EDIT: En fait, je viens de vérifier: mes plugins fonctionnent. Ce n'est que la largeur de la colonne de 80 caractères qui sont miraculeusement vivants lorsque je saisie des messages de validation.


7 commentaires

Êtes-vous sûr que votre éditeur est défini sur Vim? GIT pourrait utiliser une implémentation VI différente.


En fait, je viens de vérifier: mes plugins fonctionnent. Ce n'est que la largeur de la colonne de 80 caractères qui sont miraculeusement vivants lorsque je saisie des messages de validation. Et oui, mon cœur.editor est le même Vim que j'utilise pour tout le reste.


Cela fait pas appartient à superutilisateur. Lire la FAQ: Ainsi est l'endroit des questions sur "Outils logiciels couramment utilisés par les programmeurs". Qui utilise généralement Git et Vim?


@Mitjak: Désolé, cela a été dirigé vers le MOD qui a voté pour migrer cela en superutilisateur. Vous avez oublié que vous ne pouvez pas voir ça!


Merci pour les réponses! Vous êtes tous corrects! Je ne sais pas quelle réponse marquer heh.


@Mitjak: Complètement objectivement bien sûr, je dirais que Jamessan's ou le mien. Thomas a manqué le ftplugin, Jamessan était d'abord à deviner la cause exacte et je sais pourquoi le ftplugin fait ce qu'il fait.


Comme je l'ai dit sur Stackoverflow.com/Questtions/8710285/ ... - Si vous utilisez un VIM compilé localement par défaut, GIT peut ne pas l'utiliser. Vérifiez que la version : la version est la même sur les deux. Vous pouvez forcer votre git yo utiliser une version spécifique avec quelque chose comme git config -global core.editor '~ / bin / vim'


4 Réponses :


4
votes

: verbe ensemble textwidth? Les formatsOptions? vous indiqueront les valeurs de ces options et à quel script les a définies. Le texte est uniquement emballé dur lors de la saisie si 'textwidth' est non-zéro et 'formadoptions' contient le paramètre t . Il est probable que le plug-in gitcommit FileType ( ftplugin / gitcommit.vim ) change une ou deux de ces options car vous avez des plug-ins 3 fois que vous avez activé (: FileType Affiche Plugin : Sur ).


0 commentaires

1
votes

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

Selon PS AUX , git démarre VIM avec cette commande: xxx

Ce déclenche Le mode Syntaxe gitcommit , lequel sur mon système Ubuntu habite dans xxx

et est chargé de xxx


1 commentaires

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



15
votes

Ce n'est pas un bogue, c'est une fonctionnalité!

VIM connaît beaucoup de fichiers de fichiers-types - y compris les engagements GIT (et des rebases interactifs, ainsi que config ...). Il existe des définitions de syntaxe et des ftplugins (plugins activés par FileType) pour chacune d'elles. L'un des paramètres de la STTPLUGIN est textwidth = 72 . Ceci est fait de manière à ce que la sortie du journal GIT soit bonne dans une borne de largeur standard. Si vous voulez vraiment le changer, vous pouvez aller éditer le plugin, mais je recommanderais vraiment le garder.

Le plugin doit être dans /vimxx/ftplugin/gitcommit.vim . Le xx est le numéro de version, par exemple. 72 pour la version 7.2, et le composant principal est généralement quelque chose comme / usr / partager / vim .

P.s. Le plug-in définit également une commande diffgithedcached, qui ouvrira le diff pour être commis dans une fenêtre d'aperçu. Handy!


9 commentaires

Si vous souhaitez remplacer le réglage, vous devez le faire dans ~ / .vim / après / ftplugin / gitcommit.vim , pas en modifiant le fichier système. Voir vimdoc.sourceforge.net/htmldoc/option.html#after-Directory


@jamessan: vrai. Heureusement, dans ce cas, vous n'avez pas à vous soucier de déterminer quelle valeur pour restaurer la possibilité de restaurer la possibilité, car le FTPLUGIN ne la modifie que s'il est défini sur zéro. (Je n'avais pas lu le plug-in soigneusement suffisamment pour remarquer que la première fois et que je pensais qu'il n'y aurait aucun moyen de restaurer.)


@JEfromi: Que devra-t-il être restauré?


@jamessan: Ce n'est pas un booléen. Supposons que vous le définissiez à 100 et que le plugin l'établit à 72. Comment l'après FTPLUGIN saurait-il de savoir quoi le remettre? (Mais comme je l'ai dit, pas un problème dans ce cas.)


@jamessan étrange: Funkyimg.com/U2/405/385/... < / a>


Le ftplugin n'a pas à le remettre à rien. Puisqu'il utilise correctement setlocal au lieu de définir et 'textwidth' est une option tampon-locale, la modification n'affecte que le tampon actuel. Il existe également la Convention de la configuration d'une chaîne "Annuler" qui sera évaluée lors de l'annulation de la modification de la filetype. De plus, l'ensemble du point de l'autre répertoire est de remplacer les paramètres particuliers effectués dans les fichiers d'exécution système.


@jamessan: Je sais que c'est le point de ça. C'est juste gênant de devoir maintenir deux copies d'un cadre, une dans votre VIMRC et une comme une substitution. Le point ici est que vous souhaitez le remplacer dans la chose même car il a été préalablement réglé par votre VIMRC. (Mais encore une fois, c'est discutable dans ce cas, parce que la seule chose qu'elle aurait pu être était 0.)


Ah, j'ai explicitement défini textwidth dans ma VIMRC en raison de ce comportement. Cela exclut, par exemple, le courrier FTPlugin de la définition textwidth à 72 puisqu'il enverrait le réglage de la VIMRC. Au lieu de cela, j'ai mis des paramètres de filtrons spécifiques au fichier de fichier


@jamessan: Oui, c'est une bonne approche. Je doute qu'il y ait une tonne de personnes qui l'ont explicitement définie dans leur VIMRC, mais je suis juste obsessionnant de couvrir tous les cas.