Date: Sun, 4 Jan 2015 04:10:04 +0100 From: Stephen Riehm <freebsd@opensauce.de> To: =?windows-1252?Q?Michael_Gr=FCnewald?= <michipili@gmail.com> Cc: questions@freebsd.org, Polytropon <freebsd@edvax.de> Subject: Re: TCSH completion patterns and the pkg command Message-ID: <0BD26196-094C-48A3-BAAE-80F753658EF3@opensauce.de> In-Reply-To: <54A8836D.1010805@gmail.com> References: <54A85003.3000301@gmail.com> <20150103203734.5086dfd6.freebsd@edvax.de> <54A8836D.1010805@gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Hi guys, >> In my opinion, this is possible, but not easy. I'd say >> it's easier to teach the C shell the completition rules >> for the commands you want. Wise words :-) > I am not sure it easier to do so. If we consider the special > example of git: >=20 > * We have several possible sort of completion lists: > remotes, branch names, tags, and commit hashs =97 the latter > are commonly used for git commit --fixup et al. > * We have a lot of subcommands having many options whose names > sometimes collide and do not always use the same arguments > (e.g. git diff -b and git checkout -b). >=20 > It seems to me that it is very hard to propose pertinent > completions for git if we do not take the current subcommand > into account =97 but frankly, I did not try very hard. You're right that the "<utility> [options] <command> [options] <args>" style which has emerged in recent years is not what most completion systems were designed to cope with, and to be honest, you'd need a = database to handle all of the *valid* combinations in many cases... also, the = more the shell tries to complete, the more easily it can be confused. (e.g. git push 'v' git pull, "git p<tab>" is no longer enough, and even "git pu<tab>" needs extra correction - and once you've typed "pus" or "pul" completion doesn't help you any more either - it's still one more key-stroke) As is so often the case, you can try for perfect, or you can be happy with 'good enough' or even 'works for me' :-) In this case, grep through your history and see which commands and = options you use a lot and focus on them. I've been using some custom tcsh completions and scripts to help improve my git command line experience for a few years now,=20 (but not pkg etc.). Rather than just waving my hands in the air, I've = pulled them together and put them up on github for your perusal. If you're interested, you can find them at = https://github.com/cobber/git-tools Perhaps there's some ideas in there to help you put together something = for pkg. Cheers, Steve=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?0BD26196-094C-48A3-BAAE-80F753658EF3>