summaryrefslogtreecommitdiff
path: root/FEATURES
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2004-07-02 15:59:07 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2004-07-02 15:59:07 +0000
commit8784bbe97c078f13c91cc220eb0e13c1a92f1655 (patch)
tree80e1dec23c5dde43e84fbbc1d4f467a0af8f31c7 /FEATURES
parente9fa0606716419ea85c45667d8c7502bc8eba2c7 (diff)
downloadzsh-8784bbe97c078f13c91cc220eb0e13c1a92f1655.tar.gz
zsh-8784bbe97c078f13c91cc220eb0e13c1a92f1655.zip
20126: tidy up before 4.2.1
20127: tweaked version of Wayne's patch to reexand prompts
Diffstat (limited to 'FEATURES')
-rw-r--r--FEATURES108
1 files changed, 108 insertions, 0 deletions
diff --git a/FEATURES b/FEATURES
new file mode 100644
index 000000000..95a0d617c
--- /dev/null
+++ b/FEATURES
@@ -0,0 +1,108 @@
+------------
+ZSH FEATURES
+------------
+
+very close to ksh/sh grammar, with csh additions
+most features of ksh, bash, and tcsh
+can emulate ksh or POSIX sh
+100 builtins, 145 options, 166 key bindings
+short for loops, ex: for i (*.c) echo $i
+select
+shell functions
+autoloaded functions (loaded from a file when they are first referenced)
+conditional expressions (test builtin, [ ... ], and ksh-style [[ ... ]])
+global aliases (may be expanded anywhere on the line)
+directory stack access with ~num
+process substitution (vi =(cmd) edits the output of cmd)
+generalized pipes (ls foo >>(cmd1) 2>>(cmd2) pipes stdout to cmd1
+ and stderr to cmd2)
+arithmetic expressions
+advanced globbing:
+ ls **/file searches recursively for "file" in subdirectories
+ ls file<20-> matches file20, file30, file100, etc.
+ ls *.(c|pro) matches *.c and *.pro
+ ls *(R) matches only world-readable files
+ ls *.c~lex.c matches all .c files except lex.c
+ ls (#a1)README matches README with one error, e.g. RADME, REEDME, RAEDME
+ ls (#ia1)README same but case insensitive
+qualifiers in parentheses after globbing expression:
+ ls *(*@) matches executable files/directories or symlinks
+ ls *(L0f.go-w.) matches all zero-length files not group or world writable
+ ls *(om[2]) matches the two most recently modified files
+null command shorthands:
+ "< file" is same as "more <file"
+ "> file" is same as "cat >file"
+ ">> file" is same as "cat >>file"
+ksh-style coprocesses
+automatic file stream teeing (ls >foo >bar puts output in two places)
+chpwd() function run every time you change directory (useful for
+ updating the status line)
+job control
+csh-style history
+full vi line editing, including "c2w" and "y$" and such things
+full emacs line editing
+line editor is programmable via shell functions
+ - access and manipulate editor state via builtins and parameters
+ - user-defined `widgets' behave like other editor functions
+ - keymap customisation
+ - example functions provided
+incremental history search
+magic-space history
+spelling correction
+array parameters
+associative array parameters
+tie parameters a la path/PATH, e.g. ld_library_path/LD_LIBRARY_PATH
+$MACHTYPE, $VENDOR and $OSTYPE identify the host machine
+$LINENO, $RANDOM, $SECONDS, $cdpath, $COLUMNS, $fignore, $HISTCHARS, $mailpath
+$UID, $EUID, $GID, $EGID and $USERNAME can be assigned to
+with autocd option, typing a directory name by itself is the same as
+ typing "cd dirname"
+incremental path hashing
+automatic process time reporting for commands that run over a certain limit
+full tcsh-style prompt substitution plus conditional prompt expressions
+utmp login/logout reporting
+with histverify option, performing csh-style history expansions causes the
+ input line to be brought up for editing instead of being executed
+with sunkeyboardhack option, accidentally typed trailing ` characters
+ are removed from the input line (for those of you with Sun keyboards :-) )
+"cd old new" replaces "old" with "new" in directory string
+generalized argument completion, new system based on shell functions:
+ - highly context sensitive
+ - large (and I mean large) set of completions supplied, from a2ps to zstyle
+ - partial file path completion
+ - spelling correction and approximate completion of any completable word
+ - highly configurable expansion of shell arguments
+ - completion list colouring [`colorizing' for you lot over there]
+ - selection of completion elements with the cursor
+ - full scrolling of lists (in optional module)
+ - completion of words from the history list
+ - `styles' feature for versatile configuration
+ - `tags' feature for choosing completions preferentially
+ - `match' specifications, allowing e.g.
+ - variant forms: NO_glob, noglob, _NOGLOB_ all from the keyword glob
+ - partial-word matches with arbitrary anchors, e.g.
+ z_t.c -> zle_tricky.c
+ c.u.s -> comp.unix.shell
+ - complete control over case-insensitive matching
+ - can be defined globally or for individual completions
+ - bindable special completion functions
+menu completion: pressing TAB repeatedly cycles through the possible matches
+prompt on right side of screen
+directory stacks
+history datestamps and execution time records
+command scheduling (like at(1), but in the shell's context)
+tty mode freezing
+up to 9 startup files (but you only need 1 or 2)
+really 8-bit clean, and we mean it this time
+which -a cmd lists all occurrences of "cmd" in the path
+floating point support
+dynamically loadable binary modules, supplied modules include
+ - an FTP client which runs in the shell, with function suite
+ - math functions
+ - builtin interface to the `stat' system command
+ - builtin versions of standard commands (mv, ln, etc.) for emergencies
+ - special parameters to access internal state of hash tables etc.
+ - special associative array to access contents of files directly
+ - profiler for shell functions
+ - a pseudo-terminal handler, for purposes like `expect'
+ - builtins for interaction with termcap and terminfo