diff options
-rw-r--r-- | doc/misc/eshell.texi | 9 | ||||
-rw-r--r-- | lisp/eshell/em-alias.el | 6 |
2 files changed, 11 insertions, 4 deletions
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi index 8963826c4cc..8a607ef7702 100644 --- a/doc/misc/eshell.texi +++ b/doc/misc/eshell.texi @@ -431,13 +431,20 @@ would in an Elisp program. Eshell provides a command version of Aliases are commands that expand to a longer input line. For example, @command{ll} is a common alias for @code{ls -l}, and would be defined -with the command invocation @samp{alias ll ls -l}; with this defined, +with the command invocation @kbd{alias ll 'ls -l $*'}; with this defined, running @samp{ll foo} in Eshell will actually run @samp{ls -l foo}. Aliases defined (or deleted) by the @command{alias} command are automatically written to the file named by @code{eshell-aliases-file}, which you can also edit directly (although you will have to manually reload it). +Note that unlike aliases in Bash, arguments must be handled +explicitly. Typically the alias definition would end in @samp{$*} to +pass all arguments along. More selective use of arguments via +@samp{$1}, @samp{$2}, etc., is also possible. For example, +@kbd{alias mcd 'mkdir $1 && cd $1'} would cause @kbd{mcd foo} to +create and switch to a directory called @samp{foo}. + @node History @section History @cmindex history diff --git a/lisp/eshell/em-alias.el b/lisp/eshell/em-alias.el index f951efa65d6..742234574f3 100644 --- a/lisp/eshell/em-alias.el +++ b/lisp/eshell/em-alias.el @@ -214,8 +214,8 @@ file named by `eshell-aliases-file'.") (defvar eshell-prevent-alias-expansion nil) -(defun eshell-maybe-replace-by-alias (command args) - "If COMMAND has an alias definition, call that instead using ARGS." +(defun eshell-maybe-replace-by-alias (command _args) + "Call COMMAND's alias definition, if it exists." (unless (and eshell-prevent-alias-expansion (member command eshell-prevent-alias-expansion)) (let ((alias (eshell-lookup-alias command))) @@ -225,7 +225,7 @@ file named by `eshell-aliases-file'.") (eshell-command-arguments ',eshell-last-arguments) (eshell-prevent-alias-expansion ',(cons command eshell-prevent-alias-expansion))) - ,(eshell-parse-command (nth 1 alias) args))))))) + ,(eshell-parse-command (nth 1 alias)))))))) (defun eshell-alias-completions (name) "Find all possible completions for NAME. |