home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume3 / quickprompt < prev    next >
Internet Message Format  |  1989-02-03  |  2KB

  1. Path: xanth!mcnc!gatech!mandrill!hal!ncoast!allbery
  2. From: gwr@linus.UUCP (Gordon W. Ross)
  3. Newsgroups: comp.sources.misc
  4. Subject: v03i072: Re: v03i070: csh prompt generator
  5. Summary: prompt showing $cwd (shortened)
  6. Keywords: fast csh prompt
  7. Message-ID: <35735@linus.UUCP>
  8. Date: 5 Jul 88 17:05:10 GMT
  9. Sender: allbery@ncoast.UUCP
  10. Reply-To: gwr@linus.UUCP (Gordon W. Ross)
  11. Organization: The MITRE Corporation, Bedford, MA.
  12. Lines: 40
  13. Approved: allbery@ncoast.UUCP
  14.  
  15. Posting-number: Volume 3, Issue 72
  16. Submitted-by: "Gordon W. Ross" <gwr@linus.UUCP>
  17. Archive-name: quickprompt
  18.  
  19. For users who like a prompt showing the current working directory,
  20. here is a csh prompt generator with two important advantages:
  21. (1)  It never loads a program to create a new prompt, and
  22. (2)  it shortens the current working directory if its beginning
  23.      matches the $HOME directory.
  24.  
  25. The reason I avoid loading a program (like expr or awk) is that doing
  26. so can produce unacceptable delays after a cd, pushd, or popd.
  27. Shortening the prompt allows long commands to still fit on an 80
  28. column terminal.
  29.  
  30. Shortening is performed by a little-know capability of the csh "dirs"
  31. command.  The "dirs" command prints out the directory stack using full
  32. path-names and, if appropriate, names starting with "~/" are shown.
  33.  
  34. This should help in understanding the following csh aliases:
  35. # Set prompt generating aliases...
  36. # Note: this prompt generator uses only C-shell built-in commands.
  37. # Loading programs to build a prompt gives unacceptably slow results.
  38.     set host = `hostname`    # (done only once)
  39.  
  40.     # one backslash is used when this file is sourced;
  41.     # another is used when the alias is interpreted.
  42.     alias prompt    'set noglob ;\\
  43.     set prompt = `dirs` ;\\
  44.     set prompt = "${host}.${user}:${prompt[1]}> " ;\\
  45.     unset noglob'
  46.  
  47.         alias popd    'popd \!* ; prompt'
  48.         alias pushd    'pushd \!* ; prompt'
  49.         alias cd    'cd \!* ; prompt'
  50.     prompt    # make it appear as the first prompt
  51. # That's all, folks.  Have fun!
  52. -- 
  53. Gordon W. Ross    MITRE (E025), Burlington Road, Bedford, MA 01730
  54. linus!gwr@mitre-bedford.arpa    {decvax,philabs}!linus!gwr.UUCP
  55.