Mercurial > emacs
annotate man/eshell.texi @ 70059:9028ccec5e38
(mh-sub-folders-actual): Mention that folder must have been processed
by mh-normalize-folder-name.
(mh-folder-completion-function): Handle completion of folders with
absolute names. Also, when flag is t, display complete folder name to
provide proper highlighting in Emacs 22 now that
minibuffer-completing-file-name is nil (closes SF #1470518).
(mh-folder-completing-read): No longer set
minibuffer-completing-file-name to t. This was causing "Can't set
current directory errors" when browsing absolute file names. Another
benefit of this change is that SPC can be used for completion
again (closes SF #1470518).
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Mon, 17 Apr 2006 23:43:03 +0000 |
parents | 11b616eddda4 |
children | b7261e09f8e4 c1e013e3dc0e e6bf73e43cf4 |
rev | line source |
---|---|
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
1 \input texinfo @c -*-texinfo-*- |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
2 @c %**start of header |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
3 @setfilename ../info/eshell |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
4 @settitle Eshell: The Emacs Shell |
47737
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
5 @synindex vr fn |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
6 @c %**end of header |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
7 |
47737
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
8 @copying |
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
9 This manual is for Eshell, the Emacs shell. |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
10 |
64890
3723093a21fd
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
60425
diff
changeset
|
11 Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, |
69681
11b616eddda4
@copyright{}, no indentation in @copying{}
Karl Berry <karl@gnu.org>
parents:
68639
diff
changeset
|
12 2005, 2006 Free Software Foundation, Inc. |
47737
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
13 |
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
14 @quotation |
37404
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
15 Permission is granted to copy, distribute and/or modify this document |
65555
69b3598a61c5
Update all manuals to specify GFDL version 1.2.
Romain Francoise <romain@orebokech.com>
parents:
64890
diff
changeset
|
16 under the terms of the GNU Free Documentation License, Version 1.2 or |
37404
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
17 any later version published by the Free Software Foundation; with no |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
18 Invariant Sections, with the Front-Cover texts being ``A GNU |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
19 Manual'', and with the Back-Cover Texts as in (a) below. A copy of the |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
20 license is included in the section entitled ``GNU Free Documentation |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
21 License'' in the Emacs manual. |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
22 |
37404
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
23 (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
24 this GNU Manual, like GNU software. Copies published by the Free |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
25 Software Foundation raise funds for GNU development.'' |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
26 |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
27 This document is part of a collection distributed under the GNU Free |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
28 Documentation License. If you want to distribute this document |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
29 separately from the collection, you can do so by adding a copy of the |
730f77edf073
Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents:
37283
diff
changeset
|
30 license to the document, as described in section 6 of the license. |
47737
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
31 @end quotation |
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
32 @end copying |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
33 |
47737
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
34 @dircategory Emacs |
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
35 @direntry |
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
36 * Eshell: (eshell). A command shell implemented in Emacs Lisp. |
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
37 @end direntry |
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
38 |
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
39 @setchapternewpage on |
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
40 |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
41 @titlepage |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
42 @sp 4 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
43 @c The title is printed in a large font. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
44 @center @titlefont{User's Guide} |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
45 @sp |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
46 @center @titlefont{to} |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
47 @sp |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
48 @center @titlefont{Eshell: The Emacs Shell} |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
49 @ignore |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
50 @sp 2 |
33020 | 51 @center release 2.4 |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
52 @c -release- |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
53 @end ignore |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
54 @sp 3 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
55 @center John Wiegley |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
56 @c -date- |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
57 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
58 @page |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
59 @vskip 0pt plus 1filll |
47737
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
60 @insertcopying |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
61 @end titlepage |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
62 |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
63 @contents |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
64 |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
65 @c ================================================================ |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
66 @c The real text starts here |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
67 @c ================================================================ |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
68 |
47737
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
69 @ifnottex |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
70 @node Top, What is Eshell?, (dir), (dir) |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
71 @top Eshell |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
72 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
73 This manual documents Eshell, a shell-like command interpretor |
33020 | 74 implemented in Emacs Lisp. It invokes no external processes except for |
75 those requested by the user. It is intended to be a functional | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
76 replacement for command shells such as @command{bash}, @command{zsh}, |
33020 | 77 @command{rc}, or @command{4dos}; since Emacs itself is capable of |
78 handling the sort of tasks accomplished by those tools. | |
79 @c This manual is updated to release 2.4 of Eshell. | |
47737
0a70200bde27
use @copying instead of @ifinfo.
Karl Berry <karl@gnu.org>
parents:
46918
diff
changeset
|
80 @end ifnottex |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
81 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
82 @menu |
35588 | 83 * What is Eshell?:: A brief introduction to the Emacs Shell. |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
84 * Command basics:: The basics of command usage. |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
85 * Commands:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
86 * Arguments:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
87 * Input/Output:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
88 * Process control:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
89 * Extension modules:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
90 * Extras and Goodies:: |
35588 | 91 * Bugs and ideas:: Known problems, and future ideas. |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
92 * Concept Index:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
93 * Function and Variable Index:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
94 * Key Index:: |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
95 @end menu |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
96 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
97 @node What is Eshell? |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
98 @chapter What is Eshell? |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
99 @cindex what is Eshell? |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
100 @cindex Eshell, what it is |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
101 |
33020 | 102 Eshell is a @dfn{command shell} written in Emacs Lisp. Everything it |
35588 | 103 does, it uses Emacs' facilities to do. This means that Eshell is as |
33020 | 104 portable as Emacs itself. It also means that cooperation with Lisp code |
105 is natural and seamless. | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
106 |
33020 | 107 What is a command shell? To properly understand the role of a shell, |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
108 it's necessary to visualize what a computer does for you. Basically, a |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
109 computer is a tool; in order to use that tool, you must tell it what to |
36508 | 110 do---or give it ``commands.'' These commands take many forms, such as |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
111 clicking with a mouse on certain parts of the screen. But that is only |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
112 one form of command input. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
113 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
114 By far the most versatile way to express what you want the computer to |
36508 | 115 do is by using an abbreviated language called @dfn{script}. In |
116 script, instead of telling the computer, ``list my files, please'', | |
117 one writes a standard abbreviated command word---@samp{ls}. Typing | |
118 @samp{ls} in a command shell is a script way of telling the computer | |
119 to list your files.@footnote{This is comparable to viewing the | |
120 contents of a folder using a graphical display.} | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
121 |
33020 | 122 The real flexibility of this approach is apparent only when you realize |
123 that there are many, many different ways to list files. Perhaps you | |
124 want them sorted by name, sorted by date, in reverse order, or grouped | |
125 by type. Most graphical browsers have simple ways to express this. But | |
126 what about showing only a few files, or only files that meet a certain | |
127 criteria? In very complex and specific situations, the request becomes | |
128 too difficult to express using a mouse or pointing device. It is just | |
129 these kinds of requests that are easily solved using a command shell. | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
130 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
131 For example, what if you want to list every Word file on your hard |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
132 drive, larger than 100 kilobytes in size, and which hasn't been looked |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
133 at in over six months? That is a good candidate list for deletion, when |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
134 you go to clean up your hard drive. But have you ever tried asking your |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
135 computer for such a list? There is no way to do it! At least, not |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
136 without using a command shell. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
137 |
33020 | 138 The role of a command shell is to give you more control over what your |
139 computer does for you. Not everyone needs this amount of control, and | |
140 it does come at a cost: Learning the necessary script commands to | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
141 express what you want done. A complicated query, such as the example |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
142 above, takes time to learn. But if you find yourself using your |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
143 computer frequently enough, it is more than worthwhile in the long run. |
33020 | 144 Any tool you use often deserves the time spent learning to master it. |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
145 @footnote{For the understandably curious, here is what that command |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
146 looks like: But don't let it fool you; once you know what's going on, |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
147 it's easier than it looks: @code{ls -lt **/*.doc(Lk+50aM+5)}.} |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
148 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
149 @menu |
33020 | 150 * Contributors to Eshell:: People who have helped out! |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
151 @end menu |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
152 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
153 @node Contributors to Eshell |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
154 @section Contributors to Eshell |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
155 @cindex contributors |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
156 @cindex authors |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
157 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
158 Contributions to Eshell are welcome. I have limited time to work on |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
159 this project, but I will gladly add any code you contribute to me to |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
160 this package. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
161 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
162 The following persons have made contributions to Eshell. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
163 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
164 @itemize @bullet |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
165 @item |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
166 Eli Zaretskii made it possible for Eshell to run without requiring |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
167 asynchronous subprocess support. This is important for MS-DOS, which |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
168 does not have such support.@refill |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
169 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
170 @item |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
171 Miles Bader contributed many fixes during the port to Emacs 21.@refill |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
172 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
173 @item |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
174 Stefan Monnier fixed the things which bothered him, which of course made |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
175 things better for all.@refill |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
176 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
177 @item |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
178 Gerd Moellmann also helped to contribute bug fixes during the initial |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
179 integration with Emacs 21.@refill |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
180 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
181 @item |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
182 Alex Schroeder contributed code for interactively querying the user |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
183 before overwriting files.@refill |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
184 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
185 @item |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
186 Sudish Joseph helped with some XEmacs compatibility issues.@refill |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
187 @end itemize |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
188 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
189 Apart from these, a lot of people have sent suggestions, ideas, |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
190 requests, bug reports and encouragement. Thanks a lot! Without you |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
191 there would be no new releases of Eshell. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
192 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
193 @node Command basics |
35588 | 194 @chapter Basic overview |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
195 |
35588 | 196 A command shell is a means of entering verbally-formed commands. This |
197 is really all that it does, and every feature described in this manual | |
198 is a means to that end. Therefore, it's important to take firm hold on | |
199 exactly what a command is, and how it fits in the overall picture of | |
200 things. | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
201 |
33020 | 202 @menu |
203 * Commands verbs:: Commands always begin with a verb. | |
204 * Command arguments:: Some verbs require arguments. | |
205 @end menu | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
206 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
207 @node Commands verbs |
33020 | 208 @section Commands verbs |
209 | |
210 Commands are expressed using @dfn{script}, a special shorthand language | |
35588 | 211 computers can understand with no trouble. Script is an extremely simple |
212 language; oddly enough, this is what makes it look so complicated! | |
213 Whereas normal languages use a variety of embellishments, the form of a | |
214 script command is always: | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
215 |
33020 | 216 @example |
36508 | 217 @var{verb} [@var{arguments}] |
33020 | 218 @end example |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
219 |
33020 | 220 The verb expresses what you want your computer to do. There are a fixed |
221 number of verbs, although this number is usually quite large. On the | |
222 author's computer, it reaches almost 1400 in number. But of course, | |
223 only a handful of these are really necessary. | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
224 |
33020 | 225 Sometimes, the verb is all that's written. A verb is always a single |
35588 | 226 word, usually related to the task it performs. @command{reboot} is a |
36508 | 227 good example. Entering that on GNU/Linux will reboot the |
228 computer---assuming you have sufficient privileges. | |
33020 | 229 |
35588 | 230 Other verbs require more information. These are usually very capable |
231 verbs, and must be told specifically what to do. The extra information | |
232 is given in the form of @dfn{arguments}. For example, the | |
233 @command{echo} verb prints back whatever arguments you type. It | |
234 requires these arguments to know what to echo. A proper use of | |
33020 | 235 @command{echo} looks like this: |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
236 |
33020 | 237 @example |
36508 | 238 echo This is an example of using echo! |
33020 | 239 @end example |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
240 |
35588 | 241 This script command causes the computer to echo back: ``This is an |
36508 | 242 example of using echo!'' |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
243 |
35588 | 244 Although command verbs are always simple words, like @command{reboot} or |
245 @command{echo}, arguments may have a wide variety of forms. There are | |
246 textual arguments, numerical arguments---even Lisp arguments. | |
247 Distinguishing these different types of arguments requires special | |
248 typing, for the computer to know exactly what you mean. | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
249 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
250 @node Command arguments |
33020 | 251 @section Command arguments |
252 | |
35588 | 253 Eshell recognizes several different kinds of command arguments: |
254 | |
255 @enumerate | |
256 @item Strings (also called textual arguments) | |
257 @item Numbers (floating point or integer) | |
258 @item Lisp lists | |
259 @item Lisp symbols | |
260 @item Emacs buffers | |
261 @item Emacs process handles | |
262 @end enumerate | |
263 | |
35667
84253e69015f
Fix a couple of typos and fix markup of \.
Eli Zaretskii <eliz@gnu.org>
parents:
35588
diff
changeset
|
264 Most users need to worry only about the first two. The third, Lisp lists, |
35588 | 265 occur very frequently, but almost always behind the scenes. |
266 | |
267 Strings are the most common type of argument, and consist of nearly any | |
268 character. Special characters---those used by Eshell | |
35667
84253e69015f
Fix a couple of typos and fix markup of \.
Eli Zaretskii <eliz@gnu.org>
parents:
35588
diff
changeset
|
269 specifically---must be preceded by a backslash (@samp{\}). When in doubt, it |
84253e69015f
Fix a couple of typos and fix markup of \.
Eli Zaretskii <eliz@gnu.org>
parents:
35588
diff
changeset
|
270 is safe to add backslashes anywhere and everywhere. |
35588 | 271 |
272 Here is a more complicated @command{echo} example: | |
273 | |
274 @example | |
36508 | 275 echo A\ Multi-word\ Argument\ With\ A\ \$\ dollar |
35588 | 276 @end example |
277 | |
278 Beyond this, things get a bit more complicated. While not beyond the | |
279 reach of someone wishing to learn, it is definitely beyond the scope of | |
280 this manual to present it all in a simplistic manner. Get comfortable | |
281 with Eshell as a basic command invocation tool, and learn more about the | |
282 commands on your system; then come back when it all sits more familiarly | |
283 on your mind. Have fun! | |
284 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
285 @node Commands |
35588 | 286 @chapter Commands |
287 | |
288 @menu | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
289 * Invocation:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
290 * Completion:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
291 * Aliases:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
292 * History:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
293 * Scripts:: |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
294 * Built-ins:: |
35588 | 295 @end menu |
296 | |
37283 | 297 Essentially, a command shell is all about invoking commands---and |
298 everything that entails. So understanding how Eshell invokes commands | |
299 is the key to comprehending how it all works. | |
300 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
301 @node Invocation |
35588 | 302 @section Invocation |
303 | |
37283 | 304 Unlike regular system shells, Eshell never invokes kernel functions |
305 directly, such as @code{exec(3)}. Instead, it uses the Lisp functions | |
306 available in the Emacs Lisp library. It does this by transforming the | |
307 command you specify into a callable Lisp form.@footnote{To see the Lisp | |
308 form that will be invoked, type: @samp{eshell-parse-command "echo | |
309 hello"}} | |
310 | |
311 This transformation, from the string of text typed at the command | |
312 prompt, to the ultimate invocation of either a Lisp function or external | |
313 command, follows these steps: | |
314 | |
315 @enumerate | |
316 @item Parse the command string into separate arguments. | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
317 @item |
37283 | 318 @end enumerate |
319 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
320 @node Completion |
35588 | 321 @section Completion |
322 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
323 @node Aliases |
35588 | 324 @section Aliases |
325 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
326 @node History |
35588 | 327 @section History |
328 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
329 Eshell knows a few built-in variables: |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
330 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
331 @table @code |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
332 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
333 @item $+ |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
334 @vindex $+ |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
335 This variable always contains the current working directory. |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
336 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
337 @item $- |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
338 @vindex $- |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
339 This variable always contains the previous working directory (the |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
340 current working directory from before the last @code{cd} command). |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
341 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
342 @end table |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
343 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
344 @node Scripts |
35588 | 345 @section Scripts |
346 | |
347 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
348 @node Built-ins |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
349 @section Built-in commands |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
350 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
351 Here is a list of built-in commands that Eshell knows about: |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
352 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
353 @table @code |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
354 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
355 @item cd |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
356 @findex cd |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
357 This command changes the current working directory. Usually, it is |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
358 invoked as @samp{cd foo} where @file{foo} is the new working |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
359 directory. But @code{cd} knows about a few special arguments: |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
360 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
361 When it receives no argument at all, it changes to the home directory. |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
362 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
363 Giving the command @samp{cd -} changes back to the previous working |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
364 directory (this is the same as @samp{cd $-}). |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
365 |
45867
98bbf6d8534b
*** empty log message ***
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
45862
diff
changeset
|
366 The command @samp{cd =} shows the directory stack. Each line is |
98bbf6d8534b
*** empty log message ***
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
45862
diff
changeset
|
367 numbered. |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
368 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
369 With @samp{cd =foo}, Eshell searches the directory stack for a |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
370 directory matching the regular expression @samp{foo} and changes to |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
371 that directory. |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
372 |
45867
98bbf6d8534b
*** empty log message ***
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
45862
diff
changeset
|
373 With @samp{cd -42}, you can access the directory stack by number. |
98bbf6d8534b
*** empty log message ***
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
45862
diff
changeset
|
374 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
375 @end table |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
376 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
377 |
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
378 @node Arguments |
35588 | 379 @chapter Arguments |
380 | |
381 @menu | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
382 * The Parser:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
383 * Variables:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
384 * Substitution:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
385 * Globbing:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
386 * Predicates:: |
35588 | 387 @end menu |
388 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
389 @node The Parser |
35588 | 390 @section The Parser |
391 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
392 @node Variables |
35588 | 393 @section Variables |
394 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
395 @node Substitution |
35588 | 396 @section Substitution |
397 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
398 @node Globbing |
35588 | 399 @section Globbing |
400 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
401 @node Predicates |
35588 | 402 @section Predicates |
403 | |
404 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
405 @node Input/Output |
35588 | 406 @chapter Input/Output |
407 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
408 @node Process control |
35588 | 409 @chapter Process control |
410 | |
411 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
412 @node Extension modules |
35588 | 413 @chapter Extension modules |
414 | |
415 @menu | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
416 * Writing a module:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
417 * Module testing:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
418 * Directory handling:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
419 * Key rebinding:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
420 * Smart scrolling:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
421 * Terminal emulation:: |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
422 * Built-in UNIX commands:: |
35588 | 423 @end menu |
424 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
425 @node Writing a module |
35588 | 426 @section Writing a module |
427 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
428 @node Module testing |
35588 | 429 @section Module testing |
430 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
431 @node Directory handling |
35588 | 432 @section Directory handling |
433 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
434 @node Key rebinding |
35588 | 435 @section Key rebinding |
436 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
437 @node Smart scrolling |
35588 | 438 @section Smart scrolling |
439 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
440 @node Terminal emulation |
35588 | 441 @section Terminal emulation |
442 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
443 @node Built-in UNIX commands |
35588 | 444 @section Built-in UNIX commands |
445 | |
446 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
447 @node Extras and Goodies |
35588 | 448 @chapter Extras and Goodies |
449 | |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
450 @node Bugs and ideas |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
451 @chapter Bugs and ideas |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
452 @cindex reporting bugs and ideas |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
453 @cindex bugs, how to report them |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
454 @cindex author, how to reach |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
455 @cindex email to the author |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
456 @cindex FAQ |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
457 @cindex problems, list of common |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
458 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
459 If you find a bug or misfeature, don't hesitate to let me know! Send |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
460 email to @email{johnw@@gnu.org}. Feature requests should also be sent |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
461 there. I prefer discussing one thing at a time. If you find several |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
462 unrelated bugs, please report them separately. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
463 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
464 If you have ideas for improvements, or if you have written some |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
465 extensions to this package, I would like to hear from you. I hope you |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
466 find this package useful! |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
467 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
468 @menu |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
469 * Known problems:: |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
470 @end menu |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
471 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
472 @node Known problems |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
473 @section Known problems |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
474 @cindex known bugs |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
475 @cindex bugs, known |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
476 |
35588 | 477 Below is complete list of known problems with Eshell version 2.4.1, |
478 which is the version included with Emacs 21.1. | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
479 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
480 @table @asis |
53171
768493812366
(Known Problems): Add doc item.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
481 @item Documentation incomplete |
768493812366
(Known Problems): Add doc item.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
52401
diff
changeset
|
482 |
33020 | 483 @item Differentiate between aliases and functions |
484 | |
485 Allow for a bash-compatible syntax, such as: | |
486 | |
487 @example | |
488 alias arg=blah | |
33022
4c98dfd09341
Corrected some typos
John Wiegley <johnw@newartisans.com>
parents:
33020
diff
changeset
|
489 function arg () @{ blah $* @} |
33020 | 490 @end example |
491 | |
492 @item @samp{for i in 1 2 3 @{ grep -q a b && *echo has it @} | wc -l} outputs result after prompt | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
493 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
494 In fact, piping to a process from a looping construct doesn't work in |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
495 general. If I change the call to @code{eshell-copy-handles} in |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
496 @code{eshell-rewrite-for-command} to use @code{eshell-protect}, it seems |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
497 to work, but the output occurs after the prompt is displayed. The whole |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
498 structured command thing is too complicated at present. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
499 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
500 @item Error with @command{bc} in @code{eshell-test} |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
501 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
502 On some XEmacs system, the subprocess interaction test fails |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
503 inexplicably, although @command{bc} works fine at the command prompt. |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
504 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
505 @item Eshell does not delete @file{*Help*} buffers in XEmacs 21.1.8+ |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
506 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
507 In XEmacs 21.1.8, the @file{*Help*} buffer has been renamed such that |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
508 multiple instances of the @file{*Help*} buffer can exist. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
509 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
510 @item Pcomplete sometimes gets stuck |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
511 |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
512 You press @key{TAB}, but no completions appear, even though the |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
513 directory has matching files. This behavior is rare. |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
514 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
515 @item @samp{grep python $<rpm -qa>} doesn't work, but using @samp{*grep} does |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
516 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
517 This happens because the @code{grep} Lisp function returns immediately, |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
518 and then the asynchronous @command{grep} process expects to examine the |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
519 temporary file, which has since been deleted. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
520 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
521 @item Problem with C-r repeating text |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
522 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
523 If the text @emph{before point} reads "./run", and you type @kbd{C-r r u |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
524 n}, it will repeat the line for every character typed. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
525 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
526 @item Backspace doesn't scroll back after continuing (in smart mode) |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
527 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
528 Hitting space during a process invocation, such as @command{make}, will |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
529 cause it to track the bottom of the output; but backspace no longer |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
530 scrolls back. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
531 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
532 @item It's not possible to fully @code{unload-feature} Eshell |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
533 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
534 @item Menu support was removed, but never put back |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
535 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
536 @item Using C-p and C-n with rebind gets into a locked state |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
537 |
46918
82d113655734
Minor spelling and grammar corrections.
Paul Eggert <eggert@twinsun.com>
parents:
45867
diff
changeset
|
538 This happened a few times in Emacs 21, but has been unreproducible |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
539 since. |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
540 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
541 @item If an interactive process is currently running, @kbd{M-!} doesn't work |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
542 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
543 @item Use a timer instead of @code{sleep-for} when killing child processes |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
544 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
545 @item Piping to a Lisp function is not supported |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
546 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
547 Make it so that the Lisp command on the right of the pipe is repeatedly |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
548 called with the input strings as arguments. This will require changing |
33020 | 549 @code{eshell-do-pipeline} to handle non-process targets. |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
550 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
551 @item Input redirection is not supported |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
552 |
33020 | 553 See the above entry. |
554 | |
35588 | 555 @item Problem running @command{less} without arguments on Windows |
33020 | 556 |
557 The result in the Eshell buffer is: | |
558 | |
559 @example | |
560 Spawning child process: invalid argument | |
561 @end example | |
562 | |
563 Also a new @command{less} buffer was created with nothing in it@dots{} | |
564 (presumably this holds the output of @command{less}). | |
565 | |
566 If @command{less.exe} is invoked from the Eshell command line, the | |
567 expected output is written to the buffer. | |
568 | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
569 Note that this happens on NT-Emacs 20.6.1 on Windows 2000. The term.el |
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
570 package and the supplied shell both use the @command{cmdproxy} program |
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
571 for running shells. |
33020 | 572 |
573 @item Implement @samp{-r}, @samp{-n} and @samp{-s} switches for @command{cp} | |
574 | |
575 @item Make @kbd{M-5 M-x eshell} switch to ``*eshell<5>*'', creating if need be | |
576 | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
577 @item @samp{mv @var{dir} @var{file}.tar} does not remove directories |
33020 | 578 |
579 This is because the tar option --remove-files doesn't do so. Should it | |
580 be Eshell's job? | |
581 | |
582 @item Bind @code{standard-output} and @code{standard-error} | |
583 | |
584 This would be so that if a Lisp function calls @code{print}, everything | |
585 will happen as it should (albeit slowly). | |
586 | |
587 @item When an extension module fails to load, @samp{cd /} gives a Lisp error | |
588 | |
589 @item If a globbing pattern returns one match, should it be a list? | |
590 | |
591 @item Make sure syntax table is correct in Eshell mode | |
592 | |
593 So that @kbd{M-DEL} acts in a predictable manner, etc. | |
594 | |
595 @item Allow all Eshell buffers to share the same history and list-dir | |
596 | |
597 @item There is a problem with script commands that output to @file{/dev/null} | |
598 | |
599 If a script file, somewhere in the middle, uses @samp{> /dev/null}, | |
600 output from all subsequent commands is swallowed. | |
601 | |
602 @item Split up parsing of text after @samp{$} in @file{esh-var.el} | |
603 | |
604 Make it similar to the way that @file{esh-arg.el} is structured. | |
605 Then add parsing of @samp{$[?\n]}. | |
606 | |
607 @item After pressing @kbd{M-RET}, redisplay before running the next command | |
608 | |
609 @item Argument predicates and modifiers should work anywhere in a path | |
610 | |
611 @example | |
612 /usr/local/src/editors/vim $ vi **/CVS(/)/Root(.) | |
613 Invalid regexp: "Unmatched ( or \\(" | |
614 @end example | |
615 | |
616 With @command{zsh}, the glob above expands to all files named | |
617 @file{Root} in directories named @file{CVS}. | |
618 | |
33022
4c98dfd09341
Corrected some typos
John Wiegley <johnw@newartisans.com>
parents:
33020
diff
changeset
|
619 @item Typing @samp{echo $@{locate locate@}/bin<TAB>} results in a Lisp error |
33020 | 620 |
621 Perhaps it should interpolate all permutations, and make that the | |
622 globbing result, since otherwise hitting return here will result in | |
623 ``(list of filenames)/bin'', which is never valuable. Thus, one could | |
33022
4c98dfd09341
Corrected some typos
John Wiegley <johnw@newartisans.com>
parents:
33020
diff
changeset
|
624 @command{cat} only C backup files by using @samp{ls $@{identity *.c@}~}. |
33020 | 625 In that case, having an alias command name @command{glob} for |
626 @command{identity} would be useful. | |
627 | |
628 @item Once symbolic mode is supported for @command{umask}, implement @command{chmod} in Lisp | |
629 | |
630 @item Create @code{eshell-expand-file-name} | |
631 | |
632 This would use a data table to transform things such as @samp{~+}, | |
633 @samp{...}, etc. | |
634 | |
635 @item Abstract @file{em-smart.el} into @file{smart-scroll.el} | |
636 | |
637 It only really needs: to be hooked onto the output filter and the | |
638 pre-command hook, and to have the input-end and input-start markers. | |
36508 | 639 And to know whether the last output group was ``successful.'' |
33020 | 640 |
641 @item Allow for fully persisting the state of Eshell | |
642 | |
643 This would include: variables, history, buffer, input, dir stack, etc. | |
644 | |
645 @item Implement D as an argument predicate | |
646 | |
647 It means that files beginning with a dot should be included in the | |
648 glob match. | |
649 | |
650 @item A comma in a predicate list should mean OR | |
651 | |
652 At the moment, this is not supported. | |
653 | |
654 @item Error if a glob doesn't expand due to a predicate | |
655 | |
656 An error should be generated only if @code{eshell-error-if-no-glob} is | |
56279
b1ae5333057a
* ses.texi, viper.texi, search.texi, flymake.texi, faq.texi:
Jesper Harder <harder@ifa.au.dk>
parents:
54836
diff
changeset
|
657 non-@code{nil}. |
33020 | 658 |
659 @item @samp{(+ RET SPC TAB} does not cause @code{indent-according-to-mode} to occur | |
660 | |
661 @item Create @code{eshell-auto-accumulate-list} | |
662 | |
663 This is a list of commands for which, if the user presses @kbd{RET}, the | |
664 text is staged as the next Eshell command, rather than being sent to the | |
665 current interactive process. | |
666 | |
667 @item Display file and line number if an error occurs in a script | |
668 | |
669 @item @command{wait} doesn't work with process ids at the moment | |
670 | |
671 @item Enable the direct-to-process input code in @file{em-term.el} | |
672 | |
673 @item Problem with repeating @samp{echo $@{find /tmp@}} | |
674 | |
675 With smart display active, if @kbd{RET} is held down, after a while it | |
676 can't keep up anymore and starts outputting blank lines. It only | |
677 happens if an asynchronous process is involved@dots{} | |
678 | |
679 I think the problem is that @code{eshell-send-input} is resetting the | |
680 input target location, so that if the asynchronous process is not done | |
681 by the time the next @kbd{RET} is received, the input processor thinks | |
682 that the input is meant for the process; which, when smart display is | |
683 enabled, will be the text of the last command line! That is a bug in | |
684 itself. | |
685 | |
686 In holding down @kbd{RET} while an asynchronous process is running, | |
687 there will be a point in between termination of the process, and the | |
688 running of @code{eshell-post-command-hook}, which would cause | |
689 @code{eshell-send-input} to call @code{eshell-copy-old-input}, and then | |
690 process that text as a command to be run after the process. Perhaps | |
691 there should be a way of killing pending input between the death of the | |
692 process, and the @code{post-command-hook}. | |
693 | |
694 @item Allow for a more aggressive smart display mode | |
695 | |
696 Perhaps toggled by a command, that makes each output block a smart | |
697 display block. | |
698 | |
699 @item Create more meta variables | |
700 | |
701 @table @samp | |
702 @item $! | |
703 The reason for the failure of the last disk command, or the text of the | |
704 last Lisp error. | |
705 | |
706 @item $= | |
707 A special associate array, which can take references of the form | |
708 @samp{$=[REGEXP]}. It indexes into the directory ring. | |
709 @end table | |
710 | |
711 @item Eshell scripts can't execute in the background | |
712 | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
713 @item Support zsh's ``Parameter Expansion'' syntax, i.e. @samp{$@{@var{name}:-@var{val}@}} |
33020 | 714 |
715 @item Write an @command{info} alias that can take arguments | |
716 | |
717 So that the user can enter @samp{info chmod}, for example. | |
718 | |
719 @item Create a mode @code{eshell-browse} | |
720 | |
721 It would treat the Eshell buffer as a outline. Collapsing the outline | |
722 hides all of the output text. Collapsing again would show only the | |
723 first command run in each directory | |
724 | |
725 @item Allow other revisions of a file to be referenced using @samp{file@{rev@}} | |
726 | |
727 This would be expanded by @code{eshell-expand-file-name} (see above). | |
728 | |
729 @item Print ``You have new mail'' when the ``Mail'' icon is turned on | |
730 | |
731 @item Implement @kbd{M-|} for Eshell | |
732 | |
733 @item Implement input redirection | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
734 |
33020 | 735 If it's a Lisp function, input redirection implies @command{xargs} (in a |
736 way@dots{}). If input redirection is added, also update the | |
737 @code{file-name-quote-list}, and the delimiter list. | |
738 | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
739 @item Allow @samp{#<@var{word} @var{arg}>} as a generic syntax |
33020 | 740 |
741 With the handling of @emph{word} specified by an | |
742 @code{eshell-special-alist}. | |
743 | |
35588 | 744 @item In @code{eshell-veal-using-options}, allow a @code{:complete} tag |
33020 | 745 |
746 It would be used to provide completion rules for that command. Then the | |
747 macro will automagically define the completion function. | |
748 | |
749 @item For @code{eshell-command-on-region}, apply redirections to the result | |
750 | |
751 So that @samp{+ > 'blah} would cause the result of the @code{+} (using | |
752 input from the current region) to be inserting into the symbol | |
753 @code{blah}. | |
754 | |
755 If an external command is being invoked, the input is sent as standard | |
756 input, as if a @samp{cat <region> |} had been invoked. | |
757 | |
758 If a Lisp command, or an alias, is invoked, then if the line has no | |
759 newline characters, it is divided by whitespace and passed as arguments | |
760 to the Lisp function. Otherwise, it is divided at the newline | |
761 characters. Thus, invoking @code{+} on a series of numbers will add | |
762 them; @code{min} would display the smallest figure, etc. | |
763 | |
764 @item Write @code{eshell-script-mode} as a minor mode | |
765 | |
766 It would provide syntax, abbrev, highlighting and indenting support like | |
767 @code{emacs-lisp-mode} and @code{shell-mode}. | |
768 | |
769 @item In the history mechanism, finish the @command{bash}-style support | |
770 | |
771 This means @samp{!n}, @samp{!#}, @samp{!:%}, and @samp{!:1-} as separate | |
772 from @samp{!:1*}. | |
773 | |
774 @item Support the -n command line option for @command{history} | |
775 | |
776 @item Implement @command{fc} in Lisp | |
777 | |
778 @item Specifying a frame as a redirection target should imply the currently active window's buffer | |
779 | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
780 @item Implement @samp{>@var{func-or-func-list}} |
33020 | 781 |
782 This would allow for an ``output translators'', that take a function to | |
783 modify output with, and a target. Devise a syntax that works well with | |
46918
82d113655734
Minor spelling and grammar corrections.
Paul Eggert <eggert@twinsun.com>
parents:
45867
diff
changeset
|
784 pipes, and can accommodate multiple functions (i.e., @samp{>'(upcase |
33020 | 785 regexp-quote)} or @samp{>'upcase}). |
786 | |
787 @item Allow Eshell to read/write to/from standard input and output | |
788 | |
789 This would be optional, rather than always using the Eshell buffer. | |
790 This would allow it to be run from the command line (perhaps). | |
791 | |
792 @item Write a @command{help} command | |
793 | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
794 It would call subcommands with @option{--help}, or @option{-h} or |
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
795 @option{/?}, as appropriate. |
33020 | 796 |
797 @item Implement @command{stty} in Lisp | |
798 | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
799 @item Support @command{rc}'s matching operator, e.g. @samp{~ (@var{list}) @var{regexp}} |
33020 | 800 |
801 @item Implement @command{bg} and @command{fg} as editors of @code{eshell-process-list} | |
802 | |
803 Using @command{bg} on a process that is already in the background does | |
804 nothing. Specifying redirection targets replaces (or adds) to the list | |
805 current being used. | |
806 | |
807 @item Have @command{jobs} print only the processes for the current shell | |
808 | |
809 @item How can Eshell learn if a background process has requested input? | |
810 | |
811 @item Support @samp{2>&1} and @samp{>&} and @samp{2>} and @samp{|&} | |
812 | |
813 The syntax table for parsing these should be customizable, such that the | |
814 user could change it to use rc syntax: @samp{>[2=1]}. | |
815 | |
816 @item Allow @samp{$_[-1]}, which would indicate the last element of the array | |
817 | |
818 @item Make @samp{$x[*]} equal to listing out the full contents of @samp{x} | |
819 | |
820 Return them as a list, so that @samp{$_[*]} is all the arguments of the | |
821 last command. | |
822 | |
823 @item Copy ANSI code handling from @file{term.el} into @file{em-term.el} | |
824 | |
825 Make it possible for the user to send char-by-char to the underlying | |
826 process. Ultimately, I should be able to move away from using term.el | |
827 altogether, since everything but the ANSI code handling is already part | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
828 of Eshell. Then, things would work correctly on MS-Windows as well |
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
829 (which doesn't have @file{/bin/sh}, although @file{term.el} tries to use |
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
830 it). |
33020 | 831 |
832 @item Make the shell spawning commands be visual | |
833 | |
834 That is, make (@command{su}, @command{bash}, @command{telnet}, | |
835 @command{rlogin}, @command{rsh}, etc.) be part of | |
836 @code{eshell-visual-commands}. The only exception is if the shell is | |
837 being used to invoke a single command. Then, the behavior should be | |
838 based on what that command is. | |
839 | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
840 @item Create a smart viewing command named @command{open} |
33020 | 841 |
842 This would search for some way to open its argument (similar to opening | |
843 a file in the Windows Explorer). | |
844 | |
845 @item Alias @command{read} to be the same as @command{open}, only read-only | |
846 | |
847 @item Write a @command{tail} command which uses @code{view-file} | |
848 | |
849 It would move point to the end of the buffer, and then turns on | |
850 auto-revert mode in that buffer at frequent intervals---and a | |
851 @command{head} alias which assums an upper limit of | |
852 @code{eshell-maximum-line-length} characters per line. | |
853 | |
854 @item Make @command{dgrep} load @code{dired}, mark everything, then invoke @code{dired-do-search} | |
855 | |
35588 | 856 @item Write mesh.c |
33020 | 857 |
858 This would run Emacs with the appropriate arguments to invoke Eshell | |
859 only. That way, it could be listed as a login shell. | |
860 | |
861 @item Use an intangible @code{PS2} string for multi-line input prompts | |
862 | |
863 @item Auto-detect when a command is visual, by checking @code{TERMCAP} usage | |
864 | |
865 @item The first keypress after @kbd{M-x watson} triggers `eshell-send-input' | |
866 | |
867 @item Make @kbd{/} electric | |
868 | |
869 So that it automatically expands and corrects pathnames. Or make | |
870 pathname completion for Pcomplete auto-expand @samp{/u/i/std<TAB>} to | |
871 @samp{/usr/include/std<TAB>}. | |
872 | |
873 @item Write the @command{pushd} stack to disk along with @code{last-dir-ring} | |
874 | |
875 @item Add options to @code{eshell/cat} which would allow it to sort and uniq | |
876 | |
877 @item Implement @command{wc} in Lisp | |
878 | |
879 Add support for counting sentences, paragraphs, pages, etc. | |
880 | |
881 @item Once piping is added, implement @command{sort} and @command{uniq} in Lisp | |
882 | |
883 @item Implement @command{touch} in Lisp | |
884 | |
885 @item Implement @command{comm} in Lisp | |
886 | |
887 @item Implement an @command{epatch} command in Lisp | |
888 | |
889 This would call @code{ediff-patch-file}, or @code{ediff-patch-buffer}, | |
890 depending on its argument. | |
891 | |
892 @item Have an option such that @samp{ls -l} generates a dired buffer | |
893 | |
894 @item Write a version of @command{xargs} based on command rewriting | |
895 | |
896 That is, @samp{find X | xargs Y} would be indicated using @samp{Y | |
897 $@{find X@}}. Maybe @code{eshell-do-pipelines} could be changed to | |
898 perform this on-thy-fly rewriting. | |
899 | |
900 @item Write an alias for @command{less} that brings up a @code{view-mode} buffer | |
901 | |
33030
867e27924dcd
Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents:
33022
diff
changeset
|
902 Such that the user can press @key{SPC} and @key{DEL}, and then @key{q} |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
48786
diff
changeset
|
903 to return to Eshell. It would be equivalent to: |
33020 | 904 @samp{X > #<buffer Y>; view-buffer #<buffer Y>}. |
905 | |
906 @item Make @code{eshell-mode} as much a full citizen as @code{shell-mode} | |
907 | |
908 Everywhere in Emacs where @code{shell-mode} is specially noticed, add | |
909 @code{eshell-mode} there. | |
910 | |
911 @item Permit the umask to be selectively set on a @command{cp} target | |
912 | |
913 @item Problem using @kbd{M-x eshell} after using @code{eshell-command} | |
914 | |
915 If the first thing that I do after entering Emacs is to run | |
916 @code{eshell-command} and invoke @command{ls}, and then use @kbd{M-x | |
917 eshell}, it doesn't display anything. | |
918 | |
919 @item @kbd{M-RET} during a long command (using smart display) doesn't work | |
920 | |
921 Since it keeps the cursor up where the command was invoked. | |
922 | |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
923 @end table |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
924 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
925 @node Concept Index |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
926 @unnumbered Concept Index |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
927 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
928 @printindex cp |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
929 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
930 @node Function and Variable Index |
32542
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
931 @unnumbered Function and Variable Index |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
932 |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
933 @printindex fn |
9b4c05d377c9
Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents:
32451
diff
changeset
|
934 |
45862
1bcf7f390ca2
Remove unnecessary prev/next/up pointers in @node
Kai Großjohann <kgrossjo@eu.uu.net>
parents:
37404
diff
changeset
|
935 @node Key Index |
32450
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
936 @unnumbered Key Index |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
937 |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
938 @printindex ky |
99899af1ec94
Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff
changeset
|
939 @bye |
52401 | 940 |
941 @ignore | |
942 arch-tag: 776409ba-cb15-42b9-b2b6-d2bdc7ebad01 | |
943 @end ignore |