Michael Mauger wrote:
This is not a critical need but it has been bugging me for a while.

I have three locations of files that I use regularly. One is local on my w32 machine, the other two are on Unix machines. I use Tramp and everything works beatifully. I have something like the following in my .emacs:

   (putenv "D0" "~/My Documents/Projects/xyz")
   (putenv "D1" "/sshx:[EMAIL PROTECTED]:/home/myuser")
   (putenv "D2" "/sshx:[EMAIL PROTECTED]:/home/myuser")

This allows me to specify remote files easily at the C-x C-f prompt, with a string like:

    Find File: $D2/proj/xyz/src/x.sql

The "$D2" gets expanded and my fingers don't fall off for excess wear.

What I'd like to be able to do, especially in the recentf menu or buffer lists, is to replace the long Tramp prefix with a shorter string that allows me to see what machine the file is from quicker. Ideally, I'd like to be able to replace the leading portion of the file path with environment variable names I use when entering the file name.

For example, rather than showing me

    /sshx:[EMAIL PROTECTED]:/home/myuser/proj/xyz/src/x.sql

as the filename, I want:

    $D2/proj/xyz/src/x.sql

Part of my problem is that the Unix host names are long and very similar and they hold two different but similarly structured directory trees (think, test and production files). I've made the mistake of opening the file on the wrong host more than once because I didn't notice the host name difference in my haste. (I'm a little ADHD as well, so I do it more often than I like to admit.)

I've played around with file name handlers, but quickly got lost.

Does it make sense to put environment variables in directory-abbrev-alist?

(setq directory-abbrev-alist
      (list (cons (getenv "D0") "D0")
            (cons (getenv "D1") "D1")
            (cons (getenv "D2") "D2")))

--
Kevin Rodgers



_______________________________________________
Help-gnu-emacs mailing list
Help-gnu-emacs@gnu.org
http://lists.gnu.org/mailman/listinfo/help-gnu-emacs

Reply via email to