Re: Enhancing the user experience with tcsh

From: Eitan Adler <lists_at_eitanadler.com>
Date: Fri, 10 Feb 2012 11:25:08 -0500
Picking a random email to reply to.

My goal with this email is to reduce the amount of "controversial" changes.

commit 3ea4ea3a59d14cb060244618dd89d7dd0170bee1
diff --git a/etc/root/dot.cshrc b/etc/root/dot.cshrc
--- a/etc/root/dot.cshrc
+++ b/etc/root/dot.cshrc
_at__at_ -7,9 +7,10 _at__at_

 alias h                history 25
 alias j                jobs -l
-alias la       ls -a
+alias la       ls -aF
 alias lf       ls -FA
-alias ll       ls -lA
+alias ll       ls -lAF
+alias ls       ls -F

Two people didn't like these changes but didn't explain why. This is
incredibly helpful, especially for a new user.  If you dislike the
alias change please explain what bothers you about it?

 # A righteous umask
 umask 22
_at__at_ -17,15 +18,19 _at__at_ umask 22
 set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin
/usr/local/bin $HOME/bin)

 setenv EDITOR  vi
-setenv PAGER   more
+setenv PAGER   less
 setenv BLOCKSIZE       K

No one complained about this - it is almost certainly going to stay it
the final version.


 if ($?prompt) then
       # An interactive shell -- set some stuff up
-       set prompt = "`/bin/hostname -s`# "
+       set prompt = "[%n_at_%m]%c04%# "
+       set promptchars = "%#"

Many people had alternative suggestions for the prompt. Can you please
clarify why you believe your prompt should be the _default_ one?
While many admins are able to deal with short non-descriptive prompts
it helps new users to have more detail on the prompt line. I'd like to
commit some change to the default: currently it is very undescriptive.
I am leaving open which prompt I am going with at the end though.

       set filec
-       set history = 100
-       set savehist = 100
+       set history = 10000
+       set savehist = 10000

No one complained about this one - it is almost certainly going to
stay it the final version.

+       set autolist

set autolist=ambiguous makes sense here - I will likely go with that.

+       # Use history to aid expansion
+       set autoexpand

No one complained about this  - it is almost certainly going to stay
it the final version.

Now to address some comments made in the thread. I'm sorry for not
preserving attribution here.

> How about adding stuff like this to /usr/share/examples/tcsh/complete.tcsh ?
> Along with a comment in .cshrc pointing to that file (or even a commented line to source it), it would be an improvement.

+1 I'll add a comment addressing this file.

> I use the $HOME/bin on my machines but I am not so sure to make this a general thing.

Many people expect it, and given that it is the last item in the path
it won't affect all that much.

> The main problem of this is: novice user don't know how to enable some "advanced" settings for default FreeBSD shell (csh / tcsh) or even don't know they exist.

This is why I want to make the defaults a little bit nicer.

> I think that default FreeBSD install should be more friendly to new users.
+10000

> That's why I am propossing better support of command completion "out of the box".
> ... I am fine with this change. It is better than nothing. :)

Good. Lets start with incremental positive steps :)

>If tcsh could be updated to version 6.18.00 "set autorehash" would be
>really nice. With that you'll never have to type "rehash" again. :)

This would solve one of the most frequently asked questions on the
mailing list and IRC channel. Is there any objection to setting this
once tcsh is updated?

> The question becomes "how much is too much?"

This is why I want to keep my patch minimal. It is better at this
moment to miss a few good changes to the default tcsh than make a
large number of bad ones. We could always edit the file again if we
find a better set of defaults.


-- 
Eitan Adler
Received on Fri Feb 10 2012 - 15:25:40 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:23 UTC