Date: Mon, 22 Jul 2002 10:14:02 +1000 From: Tim Robbins <tjr@FreeBSD.ORG> To: Jon Mini <baka@elvis.mu.org> Cc: cvs-all@FreeBSD.ORG, cvs-committers@FreeBSD.ORG Subject: Re: cvs commit: src/bin/sh sh.1 Message-ID: <20020722101402.A61422@dilbert.robbins.dropbear.id.au> In-Reply-To: <20020721182928.GJ31134@elvis.mu.org>; from baka@elvis.mu.org on Sun, Jul 21, 2002 at 11:29:28AM -0700 References: <20020721180547.A29241@dilbert.robbins.dropbear.id.au> <20020721203021.D19918-100000@gamplex.bde.org> <20020721182928.GJ31134@elvis.mu.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, Jul 21, 2002 at 11:29:28AM -0700, Jon Mini wrote:
> On Sun, Jul 21, 2002 at 08:43:56PM +1000, Bruce Evans wrote:
> > Right. I have tried removing those things before, and nothing except them
> > has made a very large difference for many years. libedit doesn't seem to
> > be very well engineered (it seems to cause more bloat than libreadline
> > despite being much smaller and doing less), but the getpwnam() bloat is
> > much larger and harder to fix.
>
> I have long contended that the only thing keeping me from using sh as my
> login shell full-time is one feature that libreadline has but libedit
> lacks (^R -> reverse incremental history search).
libedit actually does have this feature, but our sh(1) lacks a command
to change the bindings. If you add this to builtins.def:
bindcmd bind
then put this in histedit.c:
int
bindcmd(int argc, char **argv)
{
return (el_parse(el, argc, argv));
}
You can then type:
set -o emacs
bind ^R em-inc-search-prev
This hack isn't entirely correct, it will just segfault if you try to use
the `bind' command when line editing is disabled. editrc(5) documents how
the bind command works.
Tim
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020722101402.A61422>
