[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: shell-command, its relatives, and aliases
From: |
Kevin Rodgers |
Subject: |
Re: shell-command, its relatives, and aliases |
Date: |
Fri, 14 Nov 2008 06:22:58 -0700 |
User-agent: |
Thunderbird 2.0.0.17 (Macintosh/20080914) |
Bill Rising wrote:
I would like to use aliases in (shell-command ...) or (call-process
region ...). Even if I tell the latter to behave as a login shell, and
make sure that the aliases are available to the login shell, I cannot
get them to execute.
The shell can see the aliases without any problem, because I can send
the -alias- command and get the list of aliases.
It seems to me that elisp is trying to see if the command is defined
before running it, instead of simply letting the shell chew on whatever
was sent to it. This could be a grave misconception.
In any case, is there are way to be able to use aliases within any of
the 'execute this line/region without starting a buffer with a shell'
commands?
call-process-region does not invoke the shell at all. If you want to
use any shell features (e.g. redirection, aliases) you need to use
shell-command-on-region.
There are several ways to make aliases available in the shell invoked
by Emacs. I would just explicitly read the shell definitions e.g.
M-| . ~/my_aliases.bash && alias_1 arg_1
Or you could create the ~/.emacs_bash file and read the shell
definitions there (automatically) -- see the Interactive Shell
node of the Emacs manual.
--
Kevin Rodgers
Denver, Colorado, USA