Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 9 Feb 2012 23:50:06 -0700 (MST)
From:      Warren Block <wblock@wonkity.com>
To:        Gonzalo Nemmi <gnemmi@gmail.com>
Cc:        Chris Rees <crees@freebsd.org>, Eitan Adler <lists@eitanadler.com>, freebsd-current Current <freebsd-current@freebsd.org>, Colin Percival <cperciva@freebsd.org>, "Wojciech A. Koszek" <wkoszek@freebsd.czest.pl>
Subject:   Re: Enhancing the user experience with tcsh
Message-ID:  <alpine.BSF.2.00.1202092328100.59730@wonkity.com>
In-Reply-To: <CAH8WUyucVk7V%2Bm9rzY6_Pq9z2jd8iNESZ8DCV5PGyGW_H1yACw@mail.gmail.com>
References:  <CAF6rxgnebQUY8azv8fovQPkB%2BGgsQjaByZ6JwnNWjrM1hB65eQ@mail.gmail.com> <CAH8WUyucVk7V%2Bm9rzY6_Pq9z2jd8iNESZ8DCV5PGyGW_H1yACw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 10 Feb 2012, Gonzalo Nemmi wrote:

> On Thu, Feb 9, 2012 at 9:52 PM, Eitan Adler <lists@eitanadler.com> wrote:
>> In conf/160689 (http://www.freebsd.org/cgi/query-pr.cgi?pr=160689)

>> there has been some discussion about changing the default cshrc file.
> In the same line that Wojciech on the PR ".cshrc should be updated for
> modern hardware" I always set this ones on /usr/share/skel/dot.cshrc
>
> bindkey "\e[1~" beginning-of-line #make Home key work;
> bindkey "\e[2~" overwrite-mode #make Ins key work;
> bindkey "\e[3~" delete-char #make Delete key work;
> bindkey "\e[4~" end-of-line #make End key work;
>
> Besides that I add an "if [ -d $HOME/bin ]" and add it to $PATH if it
> exists, but that has nothing to do with ".cshrc should be updated for
> modern hardware" ... it jsut comes in really handy.

The question becomes "how much is too much?"  For example, ever since a 
thread in the forums showed examples of csh/tcsh autocompletion, I've 
thought the default .cshrc should be stuffed with them.  Not for typing 
reduction so much as self-documenting commands like

complete chown		'p/1/u/'
complete man		'C/*/c/'
complete service	'n/*/`service -l`/'

'service' autocompletes with a list of services--it helps the user by 
showing valid choices.  Same with 'chown', it gives a list of users.

Then there's this, which probably isn't quite right but has been useful 
to me (thanks to forum members for help with it):

complete make		'n@*@`make -pn | sed -n -E "/^[#_.\/[:blank:]]+/d; /=/d; s/[[:blank:]]*:.*//gp;"`@'

That completes with all lower-case make targets for the current 
directory.

Package operations are easier when the package names autocomplete:

complete pkg_delete	'c/-/(i v D n p d f G x X r)/' \
 			'n@*@`ls /var/db/pkg`@'
complete pkg_info	'c/-/(a b v p q Q c d D f g i I j k K r R m L s o G O x X e E l t V P)/' \
 			'n@*@`\ls -1 /var/db/pkg | sed s%/var/db/pkg/%%`@'

There's lots more that could be done.  Are they appropriate for a stock 
.cshrc?  Maybe now is the time.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1202092328100.59730>