Mon objectif est d'avoir un ensemble de fichiers DOT partagés entre les nombreux comptes shell que j'ai afin que je puisse avoir un environnement similaire dans chacun. À cause de cela, je ne veux pas d'informations spécifiques à la machine / environnement dans mes fichiers .git ou mes fichiers .bash.
sur ma machine MacOSX, la version EMACS par défaut est 22. J'ai installé une version plus récente de EMACS (24 ) Dans Lorsque j'utilise git pour créer des messages de validation, il choisit toujours celui dans Edit: Ajouter plus de contexte em> p> Il existe une suggestion de mettre des variables d'environnement dans Remarque: j'ai écrit une fonction Bash appelée < fort> / usr / local / bin code>. Dans mon fichier .BASHRC, j'ai défini mon éditeur par défaut sur emacs: Editor Editor = EMACS code>. Avant cela, je configurais également mon chemin de sorte que / usr / local / bin code> vient avant / usr / bin code> de sorte que la nouvelle version de EMACS soit sélectionnée. P > / usr / bin code> au lieu de celui de / usr / local / bin code>. Git ignore mes paramètres code> path code>. J'avais l'habitude de coder l'emplacement de la version de Emacs que je voulais dans mon fichier .gitconfigure, mais cela ne fonctionnera pas lorsque j'utilise ce même fichier .gitConfigure sur mon serveur Ubuntu. (Si ce n'est pas clair, ce que je dis, c'est que la modification de mon option d'éditeur de fichier .gitConfigure à pointer vers une codée papier ne fonctionnera pas pour moi). P> $ Chemin code> paramètres? Strong> p>
.profile / .bash_profile code>. Voici un code pertinent de mon .bstrucc code> et mon .bash_profile code> p> .bstrc stry> strong> strong> < / p> VERCOMP code> qui compare les numéros de version. em> p> .bash_profile code> strong> p>
4 Réponses :
Essayez ceci:
export VISUAL=emacs
Je suis désolé d'avoir parlé de conditions vagues. En effet, cette tentative de réponse ne répond pas du tout à la question initiale. L'affiche originale voulait savoir pourquoi $ Chemin Code> La variable n'est pas utilisée par son instance de git (exécutée à partir d'EMACS sur OSX dans ce cas) afin que lorsque emacs code> est appelé De Git, la bonne version de celui-ci (en utilisant path $ code>) est choisi.
@ Pavelšimerda, op exports $ Editeur s'attendant à faire la bonne chose. $ Visual est préféré à $ éditeur dans une session graphique.
Votre déclaration ci-dessus (1) n'a aucun rapport avec le problème décrit par l'affiche originale et (2) est faux. Editeur fonctionne bien pour l'affiche originale et pour quelqu'un d'autre lorsque Visual n'est pas défini. La signification visuelle ne change pas dans les environnements graphiques de quelque manière que ce soit.
faire pas fort> défini des variables dans pour bash, les variables d'environnement appartiennent à .bstrucc code>. Bash ne regarde que ce fichier dans des sessions interactives, de sorte que les programmes en dehors d'une session interactive ne verront jamais de variables de .bstructrc. Code> ~ ~ /.profile!. $ Editor code> sur un chemin absolu: P> if [[ -e /usr/local/bin/emacs ]]; then
export EMACS=/usr/local/bin/emacs
else
export EMACS=emacs
Votre solution m'a fait aller lire homme bash code> mais je ne suis toujours pas clair ce qui va où. Ça sonne comme .bstrucc code> est invoqué à partir de choses comme Emacs lors du fait d'un coquille M-X CODE> ou simplement de tirer le terminal (puisque je ne me connecte pas non plus). Que devrais-je mettre en Bashrc et que dois-je mettre de profil? Dois-je avoir une source l'autre?
J'ai ajouté source ~ / .bstructrc code> à mon ~ / .profile mais qui n'a pas changé le comportement ...
Je m'attends à avoir une réponse qui explique pourquoi MacOSX ne prend pas mon BASHRC / Profile Environnement change et une solution pour que je puisse obtenir Macosx pour ramasser ces changements. P>
Ceci n'est pas spécifique à OS X - Voici un exemple: p>
xxx pré> pour ce que je sais et utilisé pour "vivre" est que les variables d'environnement sont censées résider à l'intérieur
/ etc / profil code> (écran du système) et peut être étendu et écrasé sur une base de niveau utilisateur à l'intérieur~ / .profile code> respectivement~ / .bash_profile code> . P>de
homme bash code> < / a>: p>Lorsque Bash est invoqué comme une coque de connexion interactive, ou en tant que Shell non interactif avec l'option --Login, il se lit en premier et exécute des commandes à partir du fichier / etc / profil, si ce fichier existe. Après avoir lu ce fichier, il cherche ~ / .bash_profile, ~ / .bash_login, et ~ / .profile, dans cet ordre, et se lit et Exécute des commandes du premier qui existe et est lisible. p> BlockQuote>
D'autre part.
.bstrucc code> est l'endroit où aller là où on place les fonctions personnalisées, les alias, la configuration rapide, etc. p>une solution simple à votre question spécifique - en dehors de l'utilisation d'une autre version de git Votre situation spéciale - serait de simplement déplacer vos variables environnementales de votre
.bstrucc code> dans un.bash_profile code>. p>Le projet Linux de Scratch Fournit une jolie Good Exemples sur la manière d'organiser les fichiers de démarrage de coque Bash . Les problèmes spécifiques sur OS X sont abordés à l'intérieur de "Réglage des variables d'environnement dans OS X?" A >. P> blockQuote>
Il est généralement bon d'avoir quelque chose comme [[-f ~ / .bashrc]] &&. ~ / .BASHRC code> dans ~ / .bash_profile code> et il est généralement ainsi par défaut dans les distributions. Il n'y a aucun moyen quelque chose dans ./. Bashrc code> ne s'applique pas à votre environnement.
Votre réponse semble également contredire votre propre commentaire dans la question de la spécificité de la question de Mac OS X.
Dernier point, mais non le moindre, la question n'était pas à propos de la variable code> $> la variable code> mais plutôt sur la trajectoire $ code> variable et l'affiche d'origine .bash_profile code> avec jumelure Sources Le .CASHRC. code>.
Tout programme est libre de définir le chemin à l'intérieur de tout ce qu'il veut - cette tactique est souvent utilisée dans les programmes code> SETUID code> pour éviter l'exécution des exécutables erronés (ou de la carrosserie). P >
Vous aurez besoin de savoir si EMACS ~ / .bastrc code>, ~ / .bash_profile code> , les deux ou autre chose entièrement. (Désolé, je suis un utilisateur VIM.) P>
Invoquez-vous
git code> à partir de terminal.app ou de l'intérieur EMACS (E.G.M-X Shell code>)?@lunarnorn, j'invoque
git code> à partir de terminal.app, mais quand je faism-x shell code> ne sorte pas de source de fichier mon fichier .bstrucc? Je suppose que je demande pourquoi cela compte où j'invoquegit code>.Quelle version de
git code> utilisez-vous?GIT Version 1.7.12.4 (Apple Git-37)
Essayez d'installer un git non-pomme / x-code: Stackoverflow.com/Questtions/13301260/...
:( Je veux utiliser ce que j'ai eu. @Bertf dis-tu que c'est le seul moyen d'obtenir Git pour respecter mes paramètres de $ de chemin?
@Avery Le problème que vous observez est dû à un bogue dans Apple Git. Obtenez
git code> de MacPorts et vous serez défini!@Avery - Selon l'autre question / réponse, c'est un bogue (sans papiers) dans Apple Git, vous êtes donc bloqué. Vous devrez utiliser un git différent, supprimer / masquer les autres emacs ou définir un éditeur sur un chemin complet.
@Avery, je peux confirmer le bogue Apple Git (1.7.12.4) sur OS X 10.7.5 mentionné dans les commentaires. Cela fonctionne bien avec Git 1.9.1 de Homebrew. De plus, je voudrais pointer vers Stackoverflow. com / questions / 135688 / ... qui contient des informations très utiles sur la définition de variables d'environnement sur des systèmes basés sur OS X.