Date: Sun, 13 May 2012 08:16:51 -0600 From: Reed Loefgren <rloefgren@forethought.net> To: freebsd-questions@freebsd.org Subject: Re: CSH prompt Message-ID: <4FAFC253.5000200@forethought.net> In-Reply-To: <20120513152509.09dbfc10.freebsd@edvax.de> References: <4FAFAF7F.4010409@webrz.net> <20120513152509.09dbfc10.freebsd@edvax.de>
next in thread | previous in thread | raw e-mail | index | archive | help
On 05/13/12 07:25, Polytropon wrote: > On Sun, 13 May 2012 14:56:31 +0200, Jos Chrispijn wrote: >> In cshell I use this prompt: set prompt = "%B[%@]%b %m[%/]> " >> The problem I face now is that if I use this prompt with symbolic links, >> the presented location is displaying the symbolic link rather than the >> real directory name. >> Is there a way of preventin this? > Yes, a very ugly way which I just found out: > > alias precmd 'set WD=`pwd`; set prompt = "%B[%@]%b %m[$WD]> "' > > Example: > > [3:21pm] r56[/]> cd /sys > [3:21pm] r56[/usr/src/sys]> _ > > It redefines the whole prompt at any command that could > affect the current working directory (not only "cd" can > do that). This is needed as any call to `pwd` stored into > a variable will only affect $prompt once - this is when > it's set, only at this time $WD would be evaluated. So > that's why this strange command. :-) > > Oh, and I just improved it. How about this? > > alias precmd 'set prompt = "%B[%@]%b %m[`pwd`]> "' > > Much better. :-) I've butchered it further, but thanks for doing the *real* work: user: alias precmd 'set prompt = "\n%{\033[32m%}%m [%h] [%@]%b%{\033[0m%} [`pwd`]$ "' root: alias precmd 'set prompt = "\n%{\033[31m%}%m [%h] [%@]%b%{\033[0m%} [`pwd`]$ "' Regards, r
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4FAFC253.5000200>