avec EMACS / ESHELL, le "ECHO $ PATH" montre des chemins différents de ceux de la variable d'environnement $ chemin. p>
Et j'ai également vérifié que Ehell ne lit pas .Cashrc ou .profile, et je pense que c'est la raison pour laquelle le chemin est différent. p>
Comme Jérôme Radix a souligné, le chemin dépend de la façon dont je commence les aquamcs. P>
3 Réponses :
Par définition, On dirait que vous ne définissez pas echo $ path code> affiche la valeur de la variable d'environnement code>. La coquille en cours d'exécution à l'intérieur d'EMACS hérite de la variable d'environnement code> du processus d'exécution EMACS. P>
eShell code> n'est pas un programme distinct comme Bash, il est intégré à EMACS. Sa personnalisation est faite via EMACS LISP. En particulier, lorsque ESHELL commence, il exécute les fonctions dans eShell-mode-crochet CODE> et charge les fichiers LISP dans eHell-modules-list code>.
edit> strong> p>
chemin code> dans le bon fichier de configuration. Le bon endroit serait quelque chose qui se fait au début de votre session. Ceci est dépendant du système d'exploitation; Si vous avez des problèmes avec cela, demandez sur Super utilisateur , en veillant à dire quel est votre système d'exploitation, et le cas échéant, indiquez votre coquille de connexion, votre bureau environnement, etc. p>
M-X Shell ou M-X ANSI-TERM fonctionne bien, mais pas avec eShell. Je suis presque certain que Ehell ne charge pas .Casherrc.
@ProSeek: Oui, désolé, ehell ne fonctionne pas bash, donc il ne charge pas .bstructrc code>. Si vous définissez chemin code> dans .bstructrc code>, cela expliquerait pourquoi vous avez des problèmes. C'est l'une des raisons pour lesquelles .CASHRC code> n'est pas le bon endroit pour définir chemin code> (ou une variable d'environnement); Voir mon dernier paragraphe.
aucun fichier de configuration n'est exécuté au démarrage. Les fichiers suivants sont lus pour définir l'historique initial et les derniers répertoires: P>
(defvar eshell-path-env (getenv "PATH") "Content of $PATH. It might be different from \(getenv \"PATH\"\), when `default-directory' points to a remote host.")
dans eSh-util.el, ligne 240: p> Il est identique à la variable de chemin du processus EMACS. J'imagine que vous faites un écho $ PATH sur une coquille en dehors de Emacs à comparer. Si le chemin est différent entre EMACS et votre shell en dehors de EMACS, c'est que Emacs et votre shell n'exécutent pas les mêmes scripts de démarrage. P> ul>
Pouvez-vous donner un exemple de la façon de démarrer Emacs, de sorte que le fichier Bash et eShell utilisent un fichier Bashrc code>? Leurs syntaxes ne sont-elles pas différentes? Comment pourraient-ils jamais utiliser le même fichier?
Depuis que vous êtes sur un Mac, il est important de savoir que des applications d'interface graphique (telles que Aquamacs lorsqu'elles sont non ouvertes à partir d'un terminal) obtiennent leur environnement à partir de ~ / .macosx / environnement.plist code>, donc vous peut faire des changements là-bas. Voir en particulier Cet article de Brian D Foy pour un moyen de construire ce fichier automatiquement . p>
J'ai trouvé ces articles utiles pour mettre en place mon environnement.Plist: blog.nguyenvq.com/ Tag / Environnement-Plist
Etrange, mes emacs et mon terminal affichent le même contenu.