## 10.11. elvis Futures

At the time of this writing, elvis 2.1 is in late beta-test, and it will probably be released by the time this book hits the bookstore. Steve Kirkendall has graciously supplied the following list of changes and new features that will be in elvis 2.1:

- Under Windows 95 and Windows/NT, there is now a graphical version of elvis. This is in addition to the text-mode port that was included in 2.0.

- A text-mode OS/2 port has been added.

- In X Windows, there is now a status bar and a configurable toolbar. The toolbar can invoke configurable dialogue windows. Also, many of the X features take their defaults from the standard X resource database. New command-line flags include `-mono`, `-fork`, and `-client`.

- The DOS version offers mouse support, similar to that of X Windows.

- elvis 2.1 supports the enhanced tags format described at length in Section 8.5.1.

  elvis 2.1 does some innovative things with tags. When reading overloaded tags, it tries to guess which one you're looking for, and presents the most likely one first. If you reject it (by hitting `^]` again, or typing `:tag` again), then it presents you with the next most likely match, and so on. It also notes the attributes of the tags that you reject or accept, and uses those to improve its guessing heuristic for later searches.

  The `:tag` command's syntax has been extended to allow you to search for tags by features other than just the tag name. This is powerful, but too complex to describe here [in Steve Kirkendall's email message]. There's a whole chapter in the manual [online help] that describes the use of tags.

  There is also a `:browse` command which finds all matching tags at once, and builds an HTML table from them. From this table, you can follow hypertext links to any matching tags you want.

  Finally, elvis 2.1 has a new `tagprg` option which, if set, discards the built-in tag searching algorithm and instead runs an external program to perform the search.

- The visual `%` command has been extended to recognize `#if`, `#else`, and `#endif` directives if you're using the `syntax` display mode.

- A new `tex` display mode has been added. It is not programmable, but is still somewhat useful.

- The `^W d` command is a little smarter in 2.1 than it was in 2.0. Now it will toggle between `syntax` and any of the fancy formatting display modes (`html`, `man`, `tex`) if that's appropriate. This makes editing web pages a little more convenient.

- elvis can fetch files via HTTP or FTP. It can also write via FTP. Simply give a URL wherever elvis expects a filename. To access your own account on an FTP site (instead of the anonymous account), the directory name portion of the URL must begin with `/~`—elvis will read your ~/.netrc file to find the right name and password. The `html` display mode makes good use of these features! (By the way, the network functions work in Windows and OS/2, too.)

- For the sake of POSIX compliance, the command-line flags have changed. `-s` used to set the `safer` flag for extra security, but now it causes elvis to read a script from stdin and execute it. [This matches nvi. A.R.] Use an uppercase `-S` to set `safer` now.

- A new `-o` `filename` flag has been added so you can redirect the startup messages out to a file, instead of stdout/stderr. This is of critical importance to Windows 95 and Windows NT users because Windows discards anything written to stdout/stderr, which made WinElvis configuration problems almost impossible to diagnose. With `-o` `filename` you can send the diagnostic info to a file and view it later.

- A new `:alias` command has been added, for defining ex macros. It is intended to resemble the csh `alias` command.

- elvis 2.0 implemented the POSIX named character classes (in regular expressions) incorrectly. elvis 2.1 fixes that. For example, you can search for a C identifier via `/\<[[:alpha:]_][[:alnum:]_]*`.

Copyright © 2003 O'Reilly & Associates. All rights reserved.