Ich habe einen Alias für einen riesigen Befehl geschrieben und ihn gespeichert. .bash_profile
Zu meiner Überraschung hat Emacs den Alias, in den ich geschrieben habe, nicht übernommen .bash_profile
. Nach einigem Suchen im Internet habe ich .bashrc
mit dem Befehl alias eine Datei in meinem $ HOME erstellt und erst danach hat emacs den Alias abgerufen. Ich bin verwirrt, weil terminal.app einen Alias von nimmt .bash_profile
, emacs jedoch nur einen Alias .bashrc
.
Ich lief M-x shellund ich bin auf macOS. Kann mir jemand erklären, wie die Beziehung zu Emacs und .bashrc
& ist .bash_profile
.
Genauer gesagt, wie kann ich Emacs dazu bringen, meine .bash_profile
zusätzlich zu lesen .bashrc
?
.bashrc
Aliase aufzunehmen? Ich frage dies, weil meine Emacs (und anscheinend die anderer) dies nicht standardmäßig tun.zsh
anstelle von Bash benutze :)Antworten:
Dies ist das richtige Verhalten.
.bash_profile
ist für sogenannte Login-Shells. Zum Beispiel, wenn Sie sich im Textmodus an Ihrem Computer anmelden oder in einem Terminalemulator überssh
odertelnet
oder ....bashrc
ist für Nicht-Login-Shells gedacht, z. B. wenn Sie bereits angemeldet sind und ein neues xterm starten, oder in diesem Fall für den Emacs-shell
Modus.Normalerweise
.bash_profile
enthält das auch Befehle zum Einlesen in.bashrc
:Das
.bashrc
wird also bei jedem Start gelesen.Aliase gehören also dazu
.bashrc
; Es ist auch üblich, ein separates zu erstellen.bash_aliases
und es.bashrc
über dasselbe Konstrukt aufzunehmen:quelle
Zusätzlich zu den von @pingi gemachten Punkten können Sie auch eine separate Konfigurationsdatei verwenden, die nur für die emacs-Shell geladen wird (
M-x shell
):Von der Handbuchseite (emacs) Interactive Shell :
Dies ist nützlich, wenn Sie in Emacs ein anderes Shell-Eingabeaufforderungsformat verwenden oder Funktionen zum Übergeben von Dateien an emacsclient definieren möchten.
quelle