Emacs/elisp setup files when loaded

elispemacs

I found that the elisp (emacs elisp) doesn't seem to read .bashrc, as the PATH variable is different from the one set in .bashrc, as I asked in here. I tried to load .bashrc using 'source .bashrc' in elisp, but when I do, elisp just quits.

  • What files does elisp read when being loaded?
  • Is there any way that I can use the setups that I made in .bashrc (alias, PATH, …)?

SOLUTION

Gilles gave me a good answer, and with the PATH, it depends on how I start the Aquamcs.

  • When I click the button to start Aquamacs, it has different PATH.
  • When I run 'aquamacs' from the command line, it has the same PATH.

Best Answer

Aliases are a shell-specific concept, so bash aliases don't carry over to eshell. Eshell has its own alias system, documented in comments near the top of em-alias.el. In a nutshell, you define aliases with the alias commands, and they are stored automatically for future sessions. The syntax is not the same as bash, for example you would write alias l='ls -l $*' in eshell where you write alias ls='ls -l' in bash. Alias definitions live in a file called ~/.eshell/alias where "~/.eshell" is the value of eshell-directory-name.

Eshell also has a shell function system, documented in comments near the top of esh-cmd.el. Quoting the first paragraph:

Whenever a command is specified using a simple name, such as 'ls', Eshell will first look for a Lisp function of the name `eshell/ls'. If it exists, it will be called in preference to any other command which might have matched the name 'ls' (such as command aliases, external commands, Lisp functions of that name, etc).

Related Question