J'ai écrit un alias pour une énorme commande et je l'ai stocké .bash_profile
et à ma grande surprise, emacs n'a pas récupéré l'alias dans lequel j'ai écrit .bash_profile
. Après quelques recherches sur Internet, j'ai créé un .bashrc
fichier dans mon $ HOME avec la commande alias et seulement après que emacs a récupéré l'alias. Je suis confus parce que terminal.app prend l'alias de .bash_profile
mais emacs ne prend l'alias que dans .bashrc
.
Je courais M-x shellet je suis sur macOS. Quelqu'un peut-il m'expliquer quelle est la relation avec emacs et .bashrc
& .bash_profile
.
Plus précisément, comment puis-je demander à Emacs de lire mon .bash_profile
en plus .bashrc
?
.bashrc
alias? Je pose cette question parce que mes Emacs (et apparemment les autres) ne le font pas par défaut.zsh
au lieu de bash :)Réponses:
C'est le comportement correct.
.bash_profile
est pour les soi-disant shells de connexion. Comme lorsque vous vous connectez à votre ordinateur en mode texte, ou dans un émulateur de terminal à un autre ordinateur viassh
outelnet
ou ....bashrc
est destiné aux shells sans connexion, comme lorsque vous êtes déjà connecté et démarrez un nouveau xterm, ou dans ce cas leshell
mode emacs .Habituellement, le
.bash_profile
contient des commandes à lire.bashrc
aussi:donc le
.bashrc
est lu à chaque démarrage.Ainsi, les alias appartiennent à
.bashrc
; il est également habituel de créer un élément distinct.bash_aliases
et de l'inclure.bashrc
via la même construction:la source
En plus des remarques faites par @pingi, vous pouvez également utiliser un fichier de configuration distinct qui sera chargé uniquement pour le shell emacs (
M-x shell
):Depuis la page de manuel (emacs) Interactive Shell :
Ceci est utile si vous souhaitez utiliser un format d'invite de shell différent dans Emacs, ou pour définir des fonctions pour transmettre des fichiers à emacsclient.
la source