A User's Guide to the Z-Shell

Peter Stephenson

1999/06/02



Table of Contents

Chapter 1: A short introduction

1.1: Other shells and other guides

1.2: Versions of zsh

Chapter 2: What to put in your startup files

2.1: Types of shell: interactive and login shells

2.1.1: What is a login shell? Simple tests

2.2: All the startup files

2.3: Options

2.4: Parameters

2.4.1: Arrays

2.5: What to put in your startup files

2.5.1: Compatibility options: SH_WORD_SPLIT and others
2.5.2: Options for csh junkies
2.5.3: The history mechanism: types of history
2.5.4: Setting up history
2.5.5: History options
2.5.6: Prompts
2.5.7: Named directories
2.5.8: `Go faster' options for power users
2.5.9: aliases
2.5.10: Environment variables
2.5.11: Path
2.5.12: Mail
2.5.13: Other path-like things
2.5.14: Version-specific things
2.5.15: Everything else

Chapter 3: Dealing with basic shell syntax Not written

Chapter 4: The Z-Shell Line Editor Not written

Chapter 5: Substitutions Not written

Chapter 6: Completion, old and new

6.1: Completion and expansion

6.2: Getting started with new completion

6.3: How the shell finds the right completions

6.3.1: Contexts
6.3.2: Tags

6.4: Configuring completion using shell options

6.4.1: Ambiguous completions
6.4.2: ALWAYS_LAST_PROMPT
6.4.3: Menu completion and menu selection
6.4.4: Other ways of changing completion behaviour
6.4.5: Changing the way completions are displayed

6.5: Configuring completion using styles

6.5.1: Specifying completers and their options
6.5.2: Changing the format of listings: groups etc.
6.5.3: Styles affecting particular completions

6.6: Command widgets

6.6.1: _complete_help
6.6.2: _correct_word, _correct_filename, _expand_word
6.6.3: _history_complete_word
6.6.4: _most_recent_file
6.6.5: _bash_completions
6.6.6: _read_comp
6.6.7: predict-on, incremental-complete-word

6.7: Matching control and controlling where things are inserted

6.7.1: Case-insensitive matching
6.7.2: Matching option names
6.7.3: Partial word completion
6.7.4: Substring completion
6.7.5: Final notes

6.8: Writing new completion functions and widgets

6.8.1: Loading completion functions: compdef
6.8.2: Adding a set of completions: compadd
6.8.3: Functions for generating filenames, etc.
6.8.4: The zsh/parameter module
6.8.5: Special completion parameters and compset
6.8.6: Fancier completion: using the tags and styles mechanism
6.8.7: Getting the work done for you: handling arguments etc.
6.8.8: More completion utility functions

6.9: Finally

Chapter 7: Modules and other bits and pieces Not written

Appendix A: Obtaining zsh and getting more information