10
votes

Quel fichier de configuration esthell (elisp shell) lu quand il commence? Comment Eshell définit son chemin?

avec EMACS / ESHELL, le "ECHO $ ​​PATH" montre des chemins différents de ceux de la variable d'environnement $ chemin.

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.

  • Quel fichier de configuration esthell lu quand il commence?
  • Comment Ehelling définit son chemin?
  • Comment rendre le chemin d'Ehell de la même manière que le chemin de la variable d'environnement?

    ajouté

    Comme Jérôme Radix a souligné, le chemin dépend de la façon dont je commence les aquamcs.

    • Lorsque je clique sur le bouton pour lancer Aquamacs, il a un chemin différent.
    • Quand j'exécute "Aquamacs" de la ligne de commande, il a le même chemin.


1 commentaires

Etrange, mes emacs et mon terminal affichent le même contenu.


3 Réponses :


1
votes

Par définition, echo $ path affiche la valeur de la variable d'environnement . La coquille en cours d'exécution à l'intérieur d'EMACS hérite de la variable d'environnement du processus d'exécution EMACS.

La coque en cours d'exécution dans eShell 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 et charge les fichiers LISP dans eHell-modules-list .

On dirait que vous ne définissez pas chemin 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.


2 commentaires

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 . Si vous définissez chemin dans .bstructrc , cela expliquerait pourquoi vous avez des problèmes. C'est l'une des raisons pour lesquelles .CASHRC n'est pas le bon endroit pour définir chemin (ou une variable d'environnement); Voir mon dernier paragraphe.



6
votes
  • quel fichier de configuration est-ce que ehell est lu quand il commence? em> li>

    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.")
    
    • Comment eShell définit son chemin? em> li> ul>

      dans eSh-util.el, ligne 240: p> xxx pré>

      • Comment rendre le chemin d'Ehell de la même manière que le chemin de la variable d'environnement? em> li> ul>

        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>


1 commentaires

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 ? Leurs syntaxes ne sont-elles pas différentes? Comment pourraient-ils jamais utiliser le même fichier?



5
votes

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 , 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 .


1 commentaires

J'ai trouvé ces articles utiles pour mettre en place mon environnement.Plist: blog.nguyenvq.com/ Tag / Environnement-Plist