Enhancing the user experience with tcsh
Eitan Adler
lists at eitanadler.com
Fri Feb 10 16:25:40 UTC 2012
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
@@ -7,9 +7,10 @@
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
@@ -17,15 +18,19 @@ 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@%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
More information about the freebsd-current
mailing list