Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

A peep into the future.

Hello everybody,

Here's the dream:

Features in zsh 3.0:

1. Fully programmable aliasing (matching regexps, replacing selections).

2. Regular Expression filename generation.

3. Programmable key bindings (a key could be bound to a sequence of
   actions, so now you can do things like: dynamic paren matching,
   real-time indentation, etc.)  Some primitive functions have been
   provided  (a small (but complete) subset of the EDITING functions 
   of elisp).

4. Safer redirections: e.g.
	if you say "foo > Important_file", zsh checks to see if there
	is anything on the stdout of foo, if not (say foo is
	non-existent), zsh leaves the Imp_file as it is.
	Otherwise, zsh "redirects" the stdout to the file.

	(This can be done, I think, by using a socket.  zsh gets
	the initial few bytes, then starts an "internal" process to
	redirect from the socket to the file.)
5. setopt POSIX_COMPLIANT now makes zsh what?

6. Hierarchical option settings.  E.g. unsetopt zle automatically
   unsetopts's the options dependant on its being set.  It itself also
   is an option.  It's there to make understanding the plethora of
   options easier for new users.

zsh 4.0:

1.  wzsh (windowing zsh) is now available.  Also, zsh now has colour
    and menu capabilities on text only terminals.  

2.  mount/umount is a shell builtin which simulates working with
    virtual filesystems e.g. ftpfs, tarfs, libfs, memfs.

    Scripts have to be provided to interface the fs with zsh.  
    (zsh translates the request to: get file, perform op, 
    send file if changed.  The first and last are handled
    by the script.  Also, the fs interface specifies which attributes
    can be changed.  (e.g. in ftp you can't change the username). So,
    the "send file *if* changed" should really be handled by the script.)

3.  zsh can now byte-code its scripts.

4.  zsh now supports dynamic files.  If a file has a specific magic no,
    it can be handled like a normal file of the *output* of that file.

    The file is handled as a read-only file.

    This feature slows down filename generation considerably (zsh
    checks to see if the file is a dynamic file, if it is,
    runs it and places its output filename in place of the original 

    So, you say elm -f mbox, and your mail is gathered from diverse
    hosts, just because the mbox is a dynamic file, which collects all
    of them mail messages by ftp'ing etc. 

	( the feature really belongs in the OS, but zsh already is
          half the OS anyway.)

zsh 10.0:

OS_TYPE is a shell variables which can be changed.  zsh simulates the
given OS.  Everything is a shell builtin.

zsh now works on MS-DOG.  Changing OS_TYPE still works perfectly.

With Warm Regards,
Harmanjit Singh.

Messages sorted by: Reverse Date, Date, Thread, Author