Enhancing the user experience with tcsh
joel at vnode.se
Fri Feb 10 12:49:55 UTC 2012
On 09-02-2012 23:50, Warren Block wrote:
> On Fri, 10 Feb 2012, Gonzalo Nemmi wrote:
> > On Thu, Feb 9, 2012 at 9:52 PM, Eitan Adler <lists at 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
> 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/%%`@'
How about adding stuff like this to /usr/share/examples/tcsh/complete.tcsh ?
More information about the freebsd-current