annotate man/eshell.texi @ 38212:6b14cc47a4f2

Major rewrite. Sections Tags, Emerge, Change Log and Authors moved to maintaining.texi. Some sections reordered. Node Misc for Programs moved to just before the language-specific sections. New node Defuns contains an intro plus the old Defuns node (now renamed Moving by Defuns) as well as Imenu, Which Function, and a node Left Margin Paren to explain the convention about this. New node Parentheses now documents M-x check-parens. It contains subnodes Expressions, Moving by Parens, and Matching. Expressions and Moving by Parens contain the material formerly in Lists and List Commands, but divided up differently. The section Balanced Editing has been deleted. Most of the C indentation customization (all except c-set-style), has been replaced with a reference to the C Modes manual. Documentation now is divided into three subsections. Some rewrites in the Program Indent section about C-u TAB and C-M-q.
author Richard M. Stallman <rms@gnu.org>
date Tue, 26 Jun 2001 13:43:32 +0000
parents 730f77edf073
children 1bcf7f390ca2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
37404
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
3 @c "@(#)$Name: $:$Id: eshell.texi,v 1.11 2001/04/19 15:07:55 gerd Exp $"
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
4
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
5 @c Documentation for Eshell: The Emacs Shell.
34304
dd613770eb0f Fix copyright years.
Dave Love <fx@gnu.org>
parents: 33030
diff changeset
6 @c Copyright (C) 1999, 2000 Free Software Foundation, Inc.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
7
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
8 @c This file is part of GNU Emacs
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
9
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
10 @c GNU Emacs is free software; you can redistribute it and/or modify it
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
11 @c under the terms of the GNU General Public License as published by the
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
12 @c Free Software Foundation; either version 2 of the License, or (at
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
13 @c your option) any later version.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
14
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
15 @c GNU Emacs is distributed in the hope that it will be useful, but
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
16 @c WITHOUT ANY WARRANTY; without even the implied warraonty of
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
17 @c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
18 @c General Public License for more details.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
19
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
20 @c You should have received a copy of the GNU General Public License
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
21 @c along with Eshell; see the file COPYING. If not, write to the Free
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
22 @c Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
23
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
24 @c %**start of header
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
25 @setfilename ../info/eshell
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
26 @settitle Eshell: The Emacs Shell
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
27 @c %**end of header
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
28
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
29 @dircategory Emacs
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
30 @direntry
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
31 * Eshell: (eshell). A command shell implemented in Emacs Lisp.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
32 @end direntry
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
33 @setchapternewpage on
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
34
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
35 @ifinfo
37404
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
36 Copyright @copyright{} 1999, 2000, 2001 Free Software Foundation, Inc.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
37
37404
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
38 Permission is granted to copy, distribute and/or modify this document
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
39 under the terms of the GNU Free Documentation License, Version 1.1 or
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
40 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
41 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
42 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
43 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
44 License'' in the Emacs manual.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
45
37404
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
46 (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
47 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
48 Software Foundation raise funds for GNU development.''
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
49
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
50 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
51 Documentation License. If you want to distribute this document
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
52 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
53 license to the document, as described in section 6 of the license.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
54 @end ifinfo
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
55
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
56 @synindex vr fn
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
57 @c The titlepage section does not appear in the Info file.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
58 @titlepage
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
59 @sp 4
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
60 @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
61 @center @titlefont{User's Guide}
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
62 @sp
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
63 @center @titlefont{to}
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
64 @sp
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
65 @center @titlefont{Eshell: The Emacs Shell}
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
66 @ignore
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
67 @sp 2
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
68 @center release 2.4
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
69 @c -release-
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
70 @end ignore
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
71 @sp 3
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
72 @center John Wiegley
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
73 @c -date-
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
74
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
75 @c The following two commands start the copyright page for the printed
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
76 @c manual. This will not appear in the Info file.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
77 @page
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
78 @vskip 0pt plus 1filll
37404
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
79 Copyright @copyright{} 1999, 2000, 2001 Free Software Foundation, Inc.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
80
37404
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
81 Permission is granted to copy, distribute and/or modify this document
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
82 under the terms of the GNU Free Documentation License, Version 1.1 or
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
83 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
84 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
85 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
86 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
87 License'' in the Emacs manual.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
88
37404
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
89 (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
90 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
91 Software Foundation raise funds for GNU development.''
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
92
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
93 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
94 Documentation License. If you want to distribute this document
730f77edf073 Use GNU Free Documentation License.
Gerd Moellmann <gerd@gnu.org>
parents: 37283
diff changeset
95 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
96 license to the document, as described in section 6 of the license.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
97 @end titlepage
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
98
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
99 @contents
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
100
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
101 @c ================================================================
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
102 @c The real text starts here
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
103 @c ================================================================
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
104
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
105 @node Top, What is Eshell?, (dir), (dir)
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
106 @ifinfo
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
107 @top Eshell
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
108
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
109 This manual documents Eshell, a shell-like command interpretor
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
110 implemented in Emacs Lisp. It invokes no external processes except for
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
111 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
112 replacement for command shells such as @command{bash}, @command{zsh},
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
113 @command{rc}, or @command{4dos}; since Emacs itself is capable of
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
114 handling the sort of tasks accomplished by those tools.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
115 @c This manual is updated to release 2.4 of Eshell.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
116 @end ifinfo
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
117
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
118 @menu
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
119 * What is Eshell?:: A brief introduction to the Emacs Shell.
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
120 * Installation:: For users of Emacs 20 and XEmacs.
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
121 * Command basics:: The basics of command usage.
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
122 * Commands::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
123 * Arguments::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
124 * Input/Output::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
125 * Process control::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
126 * Extension modules::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
127 * Extras and Goodies::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
128 * Bugs and ideas:: Known problems, and future ideas.
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
129 * Concept Index::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
130 * Function and Variable Index::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
131 * Key Index::
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
132 @end menu
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
133
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
134 @node What is Eshell?, Installation, Top, Top
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
135 @chapter What is Eshell?
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
136 @cindex what is Eshell?
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
137 @cindex Eshell, what it is
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
138
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
139 Eshell is a @dfn{command shell} written in Emacs Lisp. Everything it
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
140 does, it uses Emacs' facilities to do. This means that Eshell is as
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
141 portable as Emacs itself. It also means that cooperation with Lisp code
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
142 is natural and seamless.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
143
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
144 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
145 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
146 computer is a tool; in order to use that tool, you must tell it what to
36508
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
147 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
148 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
149 one form of command input.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
150
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
151 By far the most versatile way to express what you want the computer to
36508
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
152 do is by using an abbreviated language called @dfn{script}. In
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
153 script, instead of telling the computer, ``list my files, please'',
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
154 one writes a standard abbreviated command word---@samp{ls}. Typing
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
155 @samp{ls} in a command shell is a script way of telling the computer
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
156 to list your files.@footnote{This is comparable to viewing the
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
157 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
158
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
159 The real flexibility of this approach is apparent only when you realize
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
160 that there are many, many different ways to list files. Perhaps you
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
161 want them sorted by name, sorted by date, in reverse order, or grouped
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
162 by type. Most graphical browsers have simple ways to express this. But
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
163 what about showing only a few files, or only files that meet a certain
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
164 criteria? In very complex and specific situations, the request becomes
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
165 too difficult to express using a mouse or pointing device. It is just
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
166 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
167
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
168 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
169 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
170 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
171 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
172 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
173 without using a command shell.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
174
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
175 The role of a command shell is to give you more control over what your
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
176 computer does for you. Not everyone needs this amount of control, and
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
177 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
178 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
179 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
180 computer frequently enough, it is more than worthwhile in the long run.
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
181 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
182 @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
183 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
184 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
185
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
186 As of Emacs 21, Eshell is part of the standard Emacs distribution.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
187
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
188 @menu
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
189 * 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
190 @end menu
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
191
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
192 @node Contributors to Eshell, , What is Eshell?, What is Eshell?
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
193 @section Contributors to Eshell
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
194 @cindex contributors
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
195 @cindex authors
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
196
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
197 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
198 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
199 this package.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
200
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
201 The following persons have made contributions to Eshell.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
202
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
203 @itemize @bullet
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
204 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
205 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
206 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
207 does not have such support.@refill
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
208
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
209 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
210 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
211
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
212 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
213 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
214 things better for all.@refill
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
215
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
216 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
217 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
218 integration with Emacs 21.@refill
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
219
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
220 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
221 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
222 before overwriting files.@refill
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
223
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
224 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
225 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
226 @end itemize
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
227
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
228 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
229 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
230 there would be no new releases of Eshell.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
231
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
232 @node Installation, Command basics, What is Eshell?, Top
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
233 @chapter Installation
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
234 @cindex installation
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
235
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
236 As mentioned above, Eshell comes preinstalled as of Emacs 21. If you're
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
237 using Emacs 20.4 or later, or XEmacs 21, you can download the most
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
238 recent version of Eshell from
32451
b09ded79f0f9 Removed all external URL references, and changed one, since my
John Wiegley <johnw@newartisans.com>
parents: 32450
diff changeset
239 @url{http://www.gci-net.com/users/j/johnw/Emacs/eshell.tar.gz}.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
240
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
241 However, if you are using Emacs 21, you may skip this section.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
242
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
243 @section Short Form
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
244
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
245 Here's exactly what to do, with no explanation why:
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
246
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
247 @enumerate
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
248 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
249 @samp{M-x load-file RET eshell-auto.el RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
250
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
251 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
252 @samp{ESC : (add-to-list 'load-path "<path where Eshell resides>") RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
253
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
254 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
255 @samp{ESC : (add-to-list 'load-path "<path where Pcomplete resides>") RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
256
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
257 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
258 @samp{M-x eshell RET}.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
259
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
260 You should see a version banner displayed.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
261
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
262 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
263 @samp{ls RET}.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
264
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
265 Confirm that you see a file listing.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
266
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
267 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
268 @samp{eshell-test RET}.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
269
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
270 Confirm that everything runs correctly. Use @kbd{M-x eshell-report-bug} if
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
271 not.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
272
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
273 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
274 @samp{cd $@{dirname (locate-library "eshell-auto")@} RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
275
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
276 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
277 @samp{find-file Makefile RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
278
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
279 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
280 Edit the Makefile to reflect your site.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
281
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
282 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
283 @samp{M-x eshell RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
284
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
285 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
286 @samp{make install RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
287
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
288 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
289 @samp{find-file $user-init-file RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
290
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
291 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
292 Add the following lines to your @file{.emacs} file:
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
293
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
294 @example
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
295 (add-to-list 'load-path "<directory where you install Eshell>")
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
296 (load "eshell-auto")
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
297 @end example
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
298
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
299 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
300 @samp{M-x eshell RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
301
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
302 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
303 @samp{customize-option #'eshell-modules-list RET}.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
304
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
305 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
306 Select the extension modules you prefer.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
307
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
308 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
309 Restart Emacs!
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
310
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
311 @item
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
312 @samp{M-x info RET m Eshell RET}.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
313
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
314 Read the manual and enjoy!
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
315 @end enumerate
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
316
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
317 @section Long Form
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
318
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
319 @enumerate
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
320 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
321 Before building and installing Eshell, it is important to test that it
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
322 will work properly on your system. To do this, first load the file
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
323 @file{eshell-auto}, which will define certain autoloads required to run
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
324 Eshell. This can be done using the command @kbd{M-x load-file}, and
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
325 then selecting the file @file{eshell-auto.el}.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
326
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
327 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
328 In order for Emacs to find Eshell's files, the Eshell directory must be
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
329 added to the @code{load-path} variable. This can be done within Emacs by
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
330 typing:
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
331
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
332 @example
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
333 ESC : (add-to-list 'load-path "<path where Eshell resides>") RET
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
334 ESC : (add-to-list 'load-path "<path where Pcomplete resides>") RET
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
335 @end example
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
336
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
337 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
338 Start Eshell from the distributed sources, using default settings, by
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
339 typing @kbd{M-x eshell}.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
340
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
341 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
342 Verify that Eshell is functional by typing @command{ls} followed by
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
343 @key{RET}. You should have already seen a version banner announcing the
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
344 version number of this release, followed by a prompt.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
345
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
346 @item
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
347 Run the test suite by typing @command{eshell-test} followed by @key{RET}
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
348 in the Eshell buffer. It is important that Emacs be left alone while
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
349 the tests are running, since extraneous command input may cause some of
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
350 the tests to fail (they were never intended to run in the background).
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
351 If all of the tests pass, Eshell should work just fine on your system.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
352 If any of the tests fail, please send e-mail to the Eshell maintainer
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
353 using the command @kbd{M-x eshell-report-bug}.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
354
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
355 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
356 Edit the file @file{Makefile} in the directory containing the Eshell
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
357 sources to reflect the location of certain Emacs directories at your
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
358 site. The only things you really have to change are the definitions of
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
359 @code{lispdir} and @code{infodir}. The elisp files will be copied to
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
360 @code{lispdir}, and the info file to @code{infodir}.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
361
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
362 @item
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
363 Type @kbd{make install} in the directory containing the Eshell sources.
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
364 This will byte-compile all of the @file{*.el} files and copy both the
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
365 source and compiled versions to the directories specified in the
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
366 previous step. It will also copy the info file, and add a corresponding
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
367 entry to your @file{dir} file----if the program @code{install-info} can
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
368 be found on your system.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
369
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
370 If you only want to create the compiled elisp files, but don't want to
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
371 install them, you can type just @kbd{make} instead.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
372
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
373 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
374 Add the directory into which Eshell was installed to your
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
375 @code{load-path} variable. This can be done by adding the following
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
376 line to your @file{.emacs} file:
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
377
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
378 @example
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
379 (add-to-list 'load-path "/usr/local/share/emacs/site-lisp/eshell")
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
380 @end example
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
381
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
382 The actual directory on your system may differ.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
383
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
384 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
385 To install Eshell privately, edit your @file{.emacs} file; to install
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
386 Eshell site-wide, edit the file @file{site-start.el} in your
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
387 @file{site-lisp} directory (usually
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
388 @file{/usr/local/share/emacs/site-lisp} or something similar). In
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
389 either case enter the following line into the appropriate file:
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
390
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
391 @example
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
392 (load "eshell-auto")
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
393 @end example
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
394
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
395 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
396 Restart Emacs. After restarting, customize the variable
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
397 @code{eshell-modules-list}. This variable selects which Eshell
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
398 extension modules you want to use. You will find documentation on each
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
399 of those modules in the Info manual.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
400 @end enumerate
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
401
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
402 @cindex documentation, printed version
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
403 @cindex printed version of documentation
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
404 If you have @TeX{} installed at your site, you can make a typeset manual
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
405 from @file{eshell.texi}.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
406
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
407 @enumerate
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
408 @item
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
409 Run @TeX{} by typing @kbd{texi2dvi eshell.texi}. (With Emacs 21.1 or
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
410 later, typing @kbd{make eshell.dvi} in the @file{man/} subdirectory of
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
411 the Emacs source distribution will do that.)
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
412
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
413 @item
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
414 Convert the resulting device independent file @file{eshell.dvi} to a
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
415 form which your printer can output and print it. If you have a
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
416 postscript printer, there is a program, @code{dvi2ps}, which does that; there
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
417 is also a program which comes together with @TeX{}, @code{dvips}, which
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
418 you can use. For other printers, use a suitable DVI driver,
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
419 e.g., @code{dvilj4} for LaserJet-compatible printers.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
420 @end enumerate
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
421
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
422 @node Command basics, Commands, Installation, Top
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
423 @chapter Basic overview
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
424
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
425 A command shell is a means of entering verbally-formed commands. This
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
426 is really all that it does, and every feature described in this manual
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
427 is a means to that end. Therefore, it's important to take firm hold on
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
428 exactly what a command is, and how it fits in the overall picture of
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
429 things.
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
430
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
431 @menu
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
432 * Commands verbs:: Commands always begin with a verb.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
433 * Command arguments:: Some verbs require arguments.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
434 @end menu
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
435
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
436 @node Commands verbs, Command arguments, Command basics, Command basics
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
437 @section Commands verbs
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
438
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
439 Commands are expressed using @dfn{script}, a special shorthand language
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
440 computers can understand with no trouble. Script is an extremely simple
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
441 language; oddly enough, this is what makes it look so complicated!
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
442 Whereas normal languages use a variety of embellishments, the form of a
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
443 script command is always:
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
444
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
445 @example
36508
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
446 @var{verb} [@var{arguments}]
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
447 @end example
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
448
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
449 The verb expresses what you want your computer to do. There are a fixed
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
450 number of verbs, although this number is usually quite large. On the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
451 author's computer, it reaches almost 1400 in number. But of course,
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
452 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
453
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
454 Sometimes, the verb is all that's written. A verb is always a single
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
455 word, usually related to the task it performs. @command{reboot} is a
36508
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
456 good example. Entering that on GNU/Linux will reboot the
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
457 computer---assuming you have sufficient privileges.
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
458
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
459 Other verbs require more information. These are usually very capable
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
460 verbs, and must be told specifically what to do. The extra information
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
461 is given in the form of @dfn{arguments}. For example, the
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
462 @command{echo} verb prints back whatever arguments you type. It
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
463 requires these arguments to know what to echo. A proper use of
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
464 @command{echo} looks like this:
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
465
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
466 @example
36508
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
467 echo This is an example of using echo!
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
468 @end example
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
469
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
470 This script command causes the computer to echo back: ``This is an
36508
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
471 example of using echo!''
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
472
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
473 Although command verbs are always simple words, like @command{reboot} or
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
474 @command{echo}, arguments may have a wide variety of forms. There are
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
475 textual arguments, numerical arguments---even Lisp arguments.
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
476 Distinguishing these different types of arguments requires special
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
477 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
478
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
479 @node Command arguments, , Commands verbs, Command basics
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
480 @section Command arguments
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
481
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
482 Eshell recognizes several different kinds of command arguments:
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
483
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
484 @enumerate
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
485 @item Strings (also called textual arguments)
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
486 @item Numbers (floating point or integer)
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
487 @item Lisp lists
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
488 @item Lisp symbols
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
489 @item Emacs buffers
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
490 @item Emacs process handles
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
491 @end enumerate
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
492
35667
84253e69015f Fix a couple of typos and fix markup of \.
Eli Zaretskii <eliz@gnu.org>
parents: 35588
diff changeset
493 Most users need to worry only about the first two. The third, Lisp lists,
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
494 occur very frequently, but almost always behind the scenes.
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
495
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
496 Strings are the most common type of argument, and consist of nearly any
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
497 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
498 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
499 is safe to add backslashes anywhere and everywhere.
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
500
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
501 Here is a more complicated @command{echo} example:
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
502
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
503 @example
36508
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
504 echo A\ Multi-word\ Argument\ With\ A\ \$\ dollar
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
505 @end example
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
506
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
507 Beyond this, things get a bit more complicated. While not beyond the
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
508 reach of someone wishing to learn, it is definitely beyond the scope of
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
509 this manual to present it all in a simplistic manner. Get comfortable
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
510 with Eshell as a basic command invocation tool, and learn more about the
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
511 commands on your system; then come back when it all sits more familiarly
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
512 on your mind. Have fun!
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
513
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
514 @node Commands, Arguments, Command basics, Top
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
515 @chapter Commands
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
516
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
517 @menu
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
518 * Invocation::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
519 * Completion::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
520 * Aliases::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
521 * History::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
522 * Scripts::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
523 @end menu
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
524
37283
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
525 Essentially, a command shell is all about invoking commands---and
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
526 everything that entails. So understanding how Eshell invokes commands
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
527 is the key to comprehending how it all works.
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
528
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
529 @node Invocation, Completion, Commands, Commands
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
530 @section Invocation
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
531
37283
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
532 Unlike regular system shells, Eshell never invokes kernel functions
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
533 directly, such as @code{exec(3)}. Instead, it uses the Lisp functions
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
534 available in the Emacs Lisp library. It does this by transforming the
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
535 command you specify into a callable Lisp form.@footnote{To see the Lisp
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
536 form that will be invoked, type: @samp{eshell-parse-command "echo
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
537 hello"}}
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
538
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
539 This transformation, from the string of text typed at the command
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
540 prompt, to the ultimate invocation of either a Lisp function or external
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
541 command, follows these steps:
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
542
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
543 @enumerate
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
544 @item Parse the command string into separate arguments.
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
545 @item
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
546 @end enumerate
433e5fe5454d A few additions.
John Wiegley <johnw@newartisans.com>
parents: 36508
diff changeset
547
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
548 @node Completion, Aliases, Invocation, Commands
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
549 @section Completion
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
550
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
551 @node Aliases, History, Completion, Commands
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
552 @section Aliases
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
553
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
554 @node History, Scripts, Aliases, Commands
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
555 @section History
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
556
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
557 @node Scripts, , History, Commands
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
558 @section Scripts
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
559
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
560
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
561 @node Arguments, Input/Output, Commands, Top
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
562 @chapter Arguments
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
563
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
564 @menu
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
565 * The Parser::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
566 * Variables::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
567 * Substitution::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
568 * Globbing::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
569 * Predicates::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
570 @end menu
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
571
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
572 @node The Parser, Variables, Arguments, Arguments
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
573 @section The Parser
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
574
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
575 @node Variables, Substitution, The Parser, Arguments
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
576 @section Variables
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
577
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
578 @node Substitution, Globbing, Variables, Arguments
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
579 @section Substitution
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
580
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
581 @node Globbing, Predicates, Substitution, Arguments
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
582 @section Globbing
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
583
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
584 @node Predicates, , Globbing, Arguments
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
585 @section Predicates
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
586
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
587
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
588 @node Input/Output, Process control, Arguments, Top
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
589 @chapter Input/Output
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
590
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
591 @node Process control, Extension modules, Input/Output, Top
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
592 @chapter Process control
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
593
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
594
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
595 @node Extension modules, Extras and Goodies, Process control, Top
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
596 @chapter Extension modules
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
597
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
598 @menu
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
599 * Writing a module::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
600 * Module testing::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
601 * Directory handling::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
602 * Key rebinding::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
603 * Smart scrolling::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
604 * Terminal emulation::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
605 * Built-in UNIX commands::
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
606 @end menu
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
607
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
608 @node Writing a module, Module testing, Extension modules, Extension modules
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
609 @section Writing a module
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
610
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
611 @node Module testing, Directory handling, Writing a module, Extension modules
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
612 @section Module testing
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
613
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
614 @node Directory handling, Key rebinding, Module testing, Extension modules
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
615 @section Directory handling
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
616
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
617 @node Key rebinding, Smart scrolling, Directory handling, Extension modules
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
618 @section Key rebinding
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
619
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
620 @node Smart scrolling, Terminal emulation, Key rebinding, Extension modules
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
621 @section Smart scrolling
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
622
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
623 @node Terminal emulation, Built-in UNIX commands, Smart scrolling, Extension modules
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
624 @section Terminal emulation
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
625
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
626 @node Built-in UNIX commands, , Terminal emulation, Extension modules
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
627 @section Built-in UNIX commands
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
628
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
629
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
630 @node Extras and Goodies, Bugs and ideas, Extension modules, Top
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
631 @chapter Extras and Goodies
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
632
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
633 @node Bugs and ideas, Concept Index, Extras and Goodies, Top
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
634 @chapter Bugs and ideas
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
635 @cindex reporting bugs and ideas
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
636 @cindex bugs, how to report them
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
637 @cindex author, how to reach
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
638 @cindex email to the author
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
639 @cindex FAQ
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
640 @cindex problems, list of common
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
641
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
642 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
643 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
644 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
645 unrelated bugs, please report them separately.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
646
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
647 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
648 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
649 find this package useful!
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
650
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
651 @menu
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
652 * Known problems::
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
653 @end menu
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
654
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
655 @node Known problems, , Bugs and ideas, Bugs and ideas
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
656 @section Known problems
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
657 @cindex known bugs
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
658 @cindex bugs, known
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
659
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
660 Below is complete list of known problems with Eshell version 2.4.1,
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
661 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
662
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
663 @table @asis
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
664 @item Differentiate between aliases and functions
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
665
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
666 Allow for a bash-compatible syntax, such as:
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
667
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
668 @example
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
669 alias arg=blah
33022
4c98dfd09341 Corrected some typos
John Wiegley <johnw@newartisans.com>
parents: 33020
diff changeset
670 function arg () @{ blah $* @}
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
671 @end example
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
672
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
673 @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
674
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
675 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
676 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
677 @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
678 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
679 structured command thing is too complicated at present.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
680
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
681 @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
682
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
683 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
684 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
685
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
686 @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
687
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
688 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
689 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
690
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
691 @item Pcomplete sometimes gets stuck
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
692
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
693 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
694 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
695
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
696 @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
697
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
698 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
699 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
700 temporary file, which has since been deleted.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
701
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
702 @item Problem with C-r repeating text
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
703
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
704 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
705 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
706
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
707 @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
708
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
709 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
710 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
711 scrolls back.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
712
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
713 @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
714
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
715 @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
716
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
717 @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
718
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
719 This happened a few times in Emacs 21, but has been unreproducable
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
720 since.
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
721
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
722 @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
723
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
724 @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
725
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
726 @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
727
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
728 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
729 called with the input strings as arguments. This will require changing
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
730 @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
731
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
732 @item Input redirection is not supported
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
733
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
734 See the above entry.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
735
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
736 @item Problem running @command{less} without arguments on Windows
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
737
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
738 The result in the Eshell buffer is:
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
739
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
740 @example
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
741 Spawning child process: invalid argument
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
742 @end example
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
743
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
744 Also a new @command{less} buffer was created with nothing in it@dots{}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
745 (presumably this holds the output of @command{less}).
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
746
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
747 If @command{less.exe} is invoked from the Eshell command line, the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
748 expected output is written to the buffer.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
749
33030
867e27924dcd Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents: 33022
diff changeset
750 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
751 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
752 for running shells.
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
753
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
754 @item Implement @samp{-r}, @samp{-n} and @samp{-s} switches for @command{cp}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
755
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
756 @item Make @kbd{M-5 M-x eshell} switch to ``*eshell<5>*'', creating if need be
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
757
33030
867e27924dcd Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents: 33022
diff changeset
758 @item @samp{mv @var{dir} @var{file}.tar} does not remove directories
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
759
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
760 This is because the tar option --remove-files doesn't do so. Should it
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
761 be Eshell's job?
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
762
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
763 @item Bind @code{standard-output} and @code{standard-error}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
764
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
765 This would be so that if a Lisp function calls @code{print}, everything
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
766 will happen as it should (albeit slowly).
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
767
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
768 @item When an extension module fails to load, @samp{cd /} gives a Lisp error
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
769
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
770 @item If a globbing pattern returns one match, should it be a list?
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
771
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
772 @item Make sure syntax table is correct in Eshell mode
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
773
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
774 So that @kbd{M-DEL} acts in a predictable manner, etc.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
775
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
776 @item Allow all Eshell buffers to share the same history and list-dir
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
777
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
778 @item There is a problem with script commands that output to @file{/dev/null}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
779
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
780 If a script file, somewhere in the middle, uses @samp{> /dev/null},
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
781 output from all subsequent commands is swallowed.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
782
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
783 @item Split up parsing of text after @samp{$} in @file{esh-var.el}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
784
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
785 Make it similar to the way that @file{esh-arg.el} is structured.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
786 Then add parsing of @samp{$[?\n]}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
787
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
788 @item After pressing @kbd{M-RET}, redisplay before running the next command
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
789
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
790 @item Argument predicates and modifiers should work anywhere in a path
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
791
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
792 @example
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
793 /usr/local/src/editors/vim $ vi **/CVS(/)/Root(.)
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
794 Invalid regexp: "Unmatched ( or \\("
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
795 @end example
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
796
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
797 With @command{zsh}, the glob above expands to all files named
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
798 @file{Root} in directories named @file{CVS}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
799
33022
4c98dfd09341 Corrected some typos
John Wiegley <johnw@newartisans.com>
parents: 33020
diff changeset
800 @item Typing @samp{echo $@{locate locate@}/bin<TAB>} results in a Lisp error
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
801
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
802 Perhaps it should interpolate all permutations, and make that the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
803 globbing result, since otherwise hitting return here will result in
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
804 ``(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
805 @command{cat} only C backup files by using @samp{ls $@{identity *.c@}~}.
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
806 In that case, having an alias command name @command{glob} for
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
807 @command{identity} would be useful.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
808
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
809 @item Once symbolic mode is supported for @command{umask}, implement @command{chmod} in Lisp
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
810
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
811 @item Create @code{eshell-expand-file-name}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
812
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
813 This would use a data table to transform things such as @samp{~+},
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
814 @samp{...}, etc.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
815
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
816 @item Abstract @file{em-smart.el} into @file{smart-scroll.el}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
817
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
818 It only really needs: to be hooked onto the output filter and the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
819 pre-command hook, and to have the input-end and input-start markers.
36508
753bb928f910 Minor fixes.
Richard M. Stallman <rms@gnu.org>
parents: 35667
diff changeset
820 And to know whether the last output group was ``successful.''
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
821
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
822 @item Allow for fully persisting the state of Eshell
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
823
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
824 This would include: variables, history, buffer, input, dir stack, etc.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
825
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
826 @item Implement D as an argument predicate
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
827
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
828 It means that files beginning with a dot should be included in the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
829 glob match.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
830
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
831 @item A comma in a predicate list should mean OR
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
832
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
833 At the moment, this is not supported.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
834
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
835 @item Error if a glob doesn't expand due to a predicate
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
836
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
837 An error should be generated only if @code{eshell-error-if-no-glob} is
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
838 non-nil.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
839
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
840 @item @samp{(+ RET SPC TAB} does not cause @code{indent-according-to-mode} to occur
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
841
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
842 @item Create @code{eshell-auto-accumulate-list}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
843
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
844 This is a list of commands for which, if the user presses @kbd{RET}, the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
845 text is staged as the next Eshell command, rather than being sent to the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
846 current interactive process.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
847
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
848 @item Display file and line number if an error occurs in a script
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
849
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
850 @item @command{wait} doesn't work with process ids at the moment
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
851
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
852 @item Enable the direct-to-process input code in @file{em-term.el}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
853
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
854 @item Problem with repeating @samp{echo $@{find /tmp@}}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
855
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
856 With smart display active, if @kbd{RET} is held down, after a while it
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
857 can't keep up anymore and starts outputting blank lines. It only
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
858 happens if an asynchronous process is involved@dots{}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
859
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
860 I think the problem is that @code{eshell-send-input} is resetting the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
861 input target location, so that if the asynchronous process is not done
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
862 by the time the next @kbd{RET} is received, the input processor thinks
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
863 that the input is meant for the process; which, when smart display is
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
864 enabled, will be the text of the last command line! That is a bug in
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
865 itself.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
866
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
867 In holding down @kbd{RET} while an asynchronous process is running,
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
868 there will be a point in between termination of the process, and the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
869 running of @code{eshell-post-command-hook}, which would cause
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
870 @code{eshell-send-input} to call @code{eshell-copy-old-input}, and then
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
871 process that text as a command to be run after the process. Perhaps
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
872 there should be a way of killing pending input between the death of the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
873 process, and the @code{post-command-hook}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
874
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
875 @item Allow for a more aggressive smart display mode
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
876
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
877 Perhaps toggled by a command, that makes each output block a smart
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
878 display block.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
879
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
880 @item Create more meta variables
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
881
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
882 @table @samp
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
883 @item $!
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
884 The reason for the failure of the last disk command, or the text of the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
885 last Lisp error.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
886
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
887 @item $=
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
888 A special associate array, which can take references of the form
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
889 @samp{$=[REGEXP]}. It indexes into the directory ring.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
890 @end table
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
891
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
892 @item Eshell scripts can't execute in the background
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
893
33030
867e27924dcd Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents: 33022
diff changeset
894 @item Support zsh's ``Parameter Expansion'' syntax, i.e. @samp{$@{@var{name}:-@var{val}@}}
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
895
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
896 @item Write an @command{info} alias that can take arguments
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
897
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
898 So that the user can enter @samp{info chmod}, for example.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
899
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
900 @item Create a mode @code{eshell-browse}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
901
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
902 It would treat the Eshell buffer as a outline. Collapsing the outline
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
903 hides all of the output text. Collapsing again would show only the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
904 first command run in each directory
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
905
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
906 @item Allow other revisions of a file to be referenced using @samp{file@{rev@}}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
907
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
908 This would be expanded by @code{eshell-expand-file-name} (see above).
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
909
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
910 @item Print ``You have new mail'' when the ``Mail'' icon is turned on
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
911
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
912 @item Implement @kbd{M-|} for Eshell
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
913
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
914 @item Implement input redirection
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
915
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
916 If it's a Lisp function, input redirection implies @command{xargs} (in a
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
917 way@dots{}). If input redirection is added, also update the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
918 @code{file-name-quote-list}, and the delimiter list.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
919
33030
867e27924dcd Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents: 33022
diff changeset
920 @item Allow @samp{#<@var{word} @var{arg}>} as a generic syntax
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
921
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
922 With the handling of @emph{word} specified by an
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
923 @code{eshell-special-alist}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
924
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
925 @item In @code{eshell-veal-using-options}, allow a @code{:complete} tag
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
926
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
927 It would be used to provide completion rules for that command. Then the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
928 macro will automagically define the completion function.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
929
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
930 @item For @code{eshell-command-on-region}, apply redirections to the result
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
931
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
932 So that @samp{+ > 'blah} would cause the result of the @code{+} (using
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
933 input from the current region) to be inserting into the symbol
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
934 @code{blah}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
935
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
936 If an external command is being invoked, the input is sent as standard
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
937 input, as if a @samp{cat <region> |} had been invoked.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
938
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
939 If a Lisp command, or an alias, is invoked, then if the line has no
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
940 newline characters, it is divided by whitespace and passed as arguments
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
941 to the Lisp function. Otherwise, it is divided at the newline
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
942 characters. Thus, invoking @code{+} on a series of numbers will add
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
943 them; @code{min} would display the smallest figure, etc.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
944
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
945 @item Write @code{eshell-script-mode} as a minor mode
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
946
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
947 It would provide syntax, abbrev, highlighting and indenting support like
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
948 @code{emacs-lisp-mode} and @code{shell-mode}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
949
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
950 @item In the history mechanism, finish the @command{bash}-style support
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
951
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
952 This means @samp{!n}, @samp{!#}, @samp{!:%}, and @samp{!:1-} as separate
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
953 from @samp{!:1*}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
954
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
955 @item Support the -n command line option for @command{history}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
956
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
957 @item Implement @command{fc} in Lisp
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
958
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
959 @item Specifying a frame as a redirection target should imply the currently active window's buffer
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
960
33030
867e27924dcd Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents: 33022
diff changeset
961 @item Implement @samp{>@var{func-or-func-list}}
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
962
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
963 This would allow for an ``output translators'', that take a function to
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
964 modify output with, and a target. Devise a syntax that works well with
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
965 pipes, and can accomodate multiple functions (i.e., @samp{>'(upcase
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
966 regexp-quote)} or @samp{>'upcase}).
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
967
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
968 @item Allow Eshell to read/write to/from standard input and output
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
969
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
970 This would be optional, rather than always using the Eshell buffer.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
971 This would allow it to be run from the command line (perhaps).
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
972
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
973 @item Write a @command{help} command
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
974
33030
867e27924dcd Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents: 33022
diff changeset
975 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
976 @option{/?}, as appropriate.
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
977
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
978 @item Implement @command{stty} in Lisp
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
979
33030
867e27924dcd Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents: 33022
diff changeset
980 @item Support @command{rc}'s matching operator, e.g. @samp{~ (@var{list}) @var{regexp}}
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
981
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
982 @item Implement @command{bg} and @command{fg} as editors of @code{eshell-process-list}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
983
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
984 Using @command{bg} on a process that is already in the background does
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
985 nothing. Specifying redirection targets replaces (or adds) to the list
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
986 current being used.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
987
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
988 @item Have @command{jobs} print only the processes for the current shell
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
989
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
990 @item How can Eshell learn if a background process has requested input?
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
991
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
992 @item Support @samp{2>&1} and @samp{>&} and @samp{2>} and @samp{|&}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
993
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
994 The syntax table for parsing these should be customizable, such that the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
995 user could change it to use rc syntax: @samp{>[2=1]}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
996
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
997 @item Allow @samp{$_[-1]}, which would indicate the last element of the array
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
998
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
999 @item Make @samp{$x[*]} equal to listing out the full contents of @samp{x}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1000
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1001 Return them as a list, so that @samp{$_[*]} is all the arguments of the
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1002 last command.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1003
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1004 @item Copy ANSI code handling from @file{term.el} into @file{em-term.el}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1005
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1006 Make it possible for the user to send char-by-char to the underlying
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1007 process. Ultimately, I should be able to move away from using term.el
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1008 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
1009 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
1010 (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
1011 it).
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1012
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1013 @item Make the shell spawning commands be visual
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1014
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1015 That is, make (@command{su}, @command{bash}, @command{telnet},
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1016 @command{rlogin}, @command{rsh}, etc.) be part of
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1017 @code{eshell-visual-commands}. The only exception is if the shell is
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1018 being used to invoke a single command. Then, the behavior should be
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1019 based on what that command is.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1020
33030
867e27924dcd Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents: 33022
diff changeset
1021 @item Create a smart viewing command named @command{open}
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1022
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1023 This would search for some way to open its argument (similar to opening
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1024 a file in the Windows Explorer).
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1025
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1026 @item Alias @command{read} to be the same as @command{open}, only read-only
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1027
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1028 @item Write a @command{tail} command which uses @code{view-file}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1029
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1030 It would move point to the end of the buffer, and then turns on
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1031 auto-revert mode in that buffer at frequent intervals---and a
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1032 @command{head} alias which assums an upper limit of
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1033 @code{eshell-maximum-line-length} characters per line.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1034
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1035 @item Make @command{dgrep} load @code{dired}, mark everything, then invoke @code{dired-do-search}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1036
35588
31904bdf4350 See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 34304
diff changeset
1037 @item Write mesh.c
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1038
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1039 This would run Emacs with the appropriate arguments to invoke Eshell
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1040 only. That way, it could be listed as a login shell.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1041
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1042 @item Use an intangible @code{PS2} string for multi-line input prompts
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1043
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1044 @item Auto-detect when a command is visual, by checking @code{TERMCAP} usage
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1045
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1046 @item The first keypress after @kbd{M-x watson} triggers `eshell-send-input'
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1047
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1048 @item Make @kbd{/} electric
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1049
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1050 So that it automatically expands and corrects pathnames. Or make
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1051 pathname completion for Pcomplete auto-expand @samp{/u/i/std<TAB>} to
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1052 @samp{/usr/include/std<TAB>}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1053
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1054 @item Write the @command{pushd} stack to disk along with @code{last-dir-ring}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1055
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1056 @item Add options to @code{eshell/cat} which would allow it to sort and uniq
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1057
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1058 @item Implement @command{wc} in Lisp
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1059
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1060 Add support for counting sentences, paragraphs, pages, etc.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1061
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1062 @item Once piping is added, implement @command{sort} and @command{uniq} in Lisp
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1063
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1064 @item Implement @command{touch} in Lisp
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1065
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1066 @item Implement @command{comm} in Lisp
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1067
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1068 @item Implement an @command{epatch} command in Lisp
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1069
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1070 This would call @code{ediff-patch-file}, or @code{ediff-patch-buffer},
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1071 depending on its argument.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1072
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1073 @item Have an option such that @samp{ls -l} generates a dired buffer
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1074
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1075 @item Write a version of @command{xargs} based on command rewriting
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1076
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1077 That is, @samp{find X | xargs Y} would be indicated using @samp{Y
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1078 $@{find X@}}. Maybe @code{eshell-do-pipelines} could be changed to
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1079 perform this on-thy-fly rewriting.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1080
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1081 @item Write an alias for @command{less} that brings up a @code{view-mode} buffer
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1082
33030
867e27924dcd Some markup fixes. Don't call Windows a ``win''.
Eli Zaretskii <eliz@gnu.org>
parents: 33022
diff changeset
1083 Such that the user can press @key{SPC} and @key{DEL}, and then @key{q}
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1084 to return to Eshell. It would be equivalent to:
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1085 @samp{X > #<buffer Y>; view-buffer #<buffer Y>}.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1086
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1087 @item Make @code{eshell-mode} as much a full citizen as @code{shell-mode}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1088
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1089 Everywhere in Emacs where @code{shell-mode} is specially noticed, add
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1090 @code{eshell-mode} there.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1091
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1092 @item Permit the umask to be selectively set on a @command{cp} target
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1093
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1094 @item Problem using @kbd{M-x eshell} after using @code{eshell-command}
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1095
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1096 If the first thing that I do after entering Emacs is to run
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1097 @code{eshell-command} and invoke @command{ls}, and then use @kbd{M-x
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1098 eshell}, it doesn't display anything.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1099
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1100 @item @kbd{M-RET} during a long command (using smart display) doesn't work
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1101
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1102 Since it keeps the cursor up where the command was invoked.
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1103
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1104 @end table
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1105
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
1106 @node Concept Index, Function and Variable Index, Bugs and ideas, Top
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1107 @unnumbered Concept Index
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1108
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1109 @printindex cp
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1110
32542
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
1111 @node Function and Variable Index, Key Index, Concept Index, Top
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
1112 @unnumbered Function and Variable Index
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
1113
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
1114 @printindex fn
9b4c05d377c9 Fix markup and chapter structure of the document.
Eli Zaretskii <eliz@gnu.org>
parents: 32451
diff changeset
1115
33020
e21feeab77fb See ChangeLog
John Wiegley <johnw@newartisans.com>
parents: 32542
diff changeset
1116 @node Key Index, , Function and Variable Index, Top
32450
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1117 @unnumbered Key Index
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1118
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1119 @printindex ky
99899af1ec94 Added the beginnings of proper Eshell documentation.
John Wiegley <johnw@newartisans.com>
parents:
diff changeset
1120 @bye