sane@m.cs.uiuc.edu (Aamod Sane) (04/11/91)
This is a repost - the news here was scrogged and mutilated some parts of my earlier post. Hope this one makes it in one piece. ------------------ Navigator is a *Directory Hierarchy* manager. I work in large directory hierarchies, and it is very useful in this situation. *Navigator is NOT yet another Dired.* The intention of Navigator is to help coordinate your activities in a directory hierarchy, not edit the directories. Dired does that. In fact, Dired can be invoked from Navigator. Dired works on single directories - Navigator coordinates across directory trees. Navigator is especially nice with Epoch. Sources for Navigator are posted tar'd, compressed and uuencoded on gnu.emacs.sources. From the intro message: ---------- Navigator creates and manages directory hierarchies. Navigator is similiar in spirit to OpenLook/Macintosh and PCTOOLS. It has proven to be very useful when working in *Large Directory Hierarchies*. Navigator provides * A directory tree to move in * Tree creation and in place expansions. Depth of the tree can be specified. After expansion, the tree can be edited in text-mode. The tree can be saved in a file. * Shells cd'ed to a directory. Compiles and Debugs can then take place in that directory. * Shell+ Directory Listing pair. Current directory for this pair can be changed from the navigator. It is also possible to continuosly track the Navigator current directory. * A shell command on current directory. * Current directory listing (ls). From the listing, - file find. - shell command on directory. - shell command with current file as last argument. * Tracking-Shell and Multi-Shell (in the file multishell.el) - Multi-Shell creates multiple instances of shells. - Tracking-Shell cd's to the current directory of the buffer from which it is invoked. Thus to do something in the current directory of a buffer,pop up a tracking-shell, do whatever, and close the shell. Automatic cd'ing allows direct usage of shell commands; complicated key sequences are not neccessary for file manipulation. - *These are independent of Navigator*. Navigator uses Multi-Shell for its shells. Navigator shells are based on CMU Shell; the distribution contains copies of cmushell.el and comint.el. * Dired invocations from Shell or Directory listing. Dired is actually not necessary for file manipulations -- you can create a shell and use standard shell commands. No arcane keystrokes need be remembered for doing file manipulations. Navigator presents the tree as: root child grandchild child etc. Currently, there must be one and only one root. The cursor points to the current navigator directory. At the current directory: Type f or C-xC-f find file in current directory. ( Dired can be popped by f RET ). Type s to pop up a shell with cd set to the current directory. Type t to pop up a shell + directory listing which can track the current directory. Type t again on a different directory to track further. Type c to run a shell command on the current directory. Type d to get a quick directory listing. Type C-xd to pop up dired. Type x to expand the current directory in place. Type e to edit the navigator buffer to quickly insert directories. Type C-xC-s to save the navigator data structure in a file Type j to traverse sibling upward . Type k to traverse sibling downward. Type h to go to children. Type l to go to parent. Type ? to get this message. In a directory window: Type f or C-xC-f to find file Type c to run a shell command on the current directory. Type k to run shell command on current directory with current file arg. Type C-xd to get dired window on current directory. If running epoch: Control-mouse-left to in navigator get quick directory listing. Control-mouse-middle in navigator to get tracked shell and ls Control-mouse-left in directory window to find that file. Customisation variables: (default in parens) navigator-mode-hook (nil) nav-indent-value (4) nav-hierarchy-dir (~/emacs/hierarchy) ;; must set after (load \"navigator\") nav-track-ls-and-sh (t) ;; track directory listing and shell or just shell nav-track-continually (nil) ;; track with every key movement nav-ls-new-screen (t) ;; separate screen for ls (epoch only) nav-ls-file-separators ( \\t\\n@/*) ;; Unix specific Creating hierarchies: You will be asked for the root directory of the tree, the depth and a file to save the hierarchy in. Unless you have changed the nav-hierarchy-dir variable, the hierarchy file will be put in ~/emacs/hierarchy. The first time is determined by the existence of nav-hierarchy-dir. Problem areas: * The directory hierarchy is created using find + awk. 'find' does not go through symlinks. The root, however, may be a symlink. This script is defined in nav-read-dir-tree-command. Bug reports and fixes: Aamod Sane (sane@cs.uiuc.edu) ------------- Navigator depends on two modifications of cmushell. These are included in the file multishell.el. The distribution also contains cmushell.el and comint.el for those who do not have it. At present, Navigator has mouse bindings only for Epoch. I do not know how to set up Emacs mouse bindings. I will be very happy to get these from people on the net. After you have read intro - M-x navigator-introduction you might like to try this example out. Then create your own hierarchy. ----- example tree Here is a subset of the /usr on my sparc. Put this in a file in the hierarchy directory alluded to above. (default ~/emacs/hierarchy). Try it out with Navigator for those directories that exist on your system. esp. the include sys ones. Try adding new directories etc., (Directory expansion does a find, and then edits out the unwanted ones. So expansion is slow. But it is typically done once for a hierarchy, so that is ok The usual method to add few new directories is edit the navigator display using "e".) ---- cut and put in ~/emacs/hierarchy/usr.el ----- (setq nav-hierarchy '(("/usr"( ("bin") ("lib"( ("term") ("lint"))) ("include"( ("sys"))))))) -------------------- Enjoy, Aamod Sane sane@cs.uiuc.edu
src@scuzzy.in-berlin.de (Heiko Blume) (04/13/91)
looks like the package lacks some hints, i.e. that one has to 'M-x navigator' to actually invoke it, that you probably have to (setq max-lisp-eval-depth 4000), and that it takes about 15 cpu HOURS [on my 386/33] to build the hierarchy file for a filesystem with 600 directories. it'll probably take several cpu YEARS when i attempt to use it on all my filesystems :-) i also get "Buffer is read-only: #<buffer Navigator-src> when i try to eXpand a directory. -- Heiko Blume <-+-> src@scuzzy.in-berlin.de <-+-> (+49 30) 691 88 93 [voice!] public UNIX source archive [HST V.42bis]: scuzzy Any ACU,f 38400 6919520 gin:--gin: nuucp sword: nuucp uucp scuzzy!/src/README /your/home