Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Automatically run ls on blank line for faster navigation
- X-seq: zsh-users 16934
- From: Mikael Magnusson <mikachu@xxxxxxxxx>
- To: Mitchell Burdette <mitchell.burdette@xxxxxxxxx>
- Subject: Re: Automatically run ls on blank line for faster navigation
- Date: Thu, 29 Mar 2012 23:07:11 +0200
- Cc: zsh-users@xxxxxxx
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=yiI/92EsLn0eWhWqyHrRQ8aICo5R3tQFKbhGSrYU3Cg=; b=mEaDiUkCdTUXrSLYOGbnp6M9HurDmum7xWpSGXL/Bidfs1v7vnut+vzh5FrhrrXMjf Cn7b7arGjxr4ZSxS8GiCi2yHwl21gbk1NCmScI/xNQN20kIPIiaAZV2kU1IxRrVVhs2I pYvgGyC49ltfwYu9fGltni9xj5491K8CHiukvi2+48bGhpmBDWg/Kl8MCrxhAhfuC6vf tp/zuJwvJc7Uyh/DKZ2IDOWoLc8XRpT+BbrxmPrlOEoMHEnnfjX94K47wGpyL5ptxtrt q7bjElxmdjEWg2W4hSuBiofl+IPrk2Ie04dAw5bEQADoi3byr1ay9ORD4oa/8IO1Kk/O FN3w==
- In-reply-to: <CAJt4KPYvi04qd0=0=2_QA6gu9EP56vjnYyhBUpC1S30SHAjXvQ@mail.gmail.com>
- List-help: <mailto:zsh-users-help@zsh.org>
- List-id: Zsh Users List <zsh-users.zsh.org>
- List-post: <mailto:zsh-users@zsh.org>
- Mailing-list: contact zsh-users-help@xxxxxxx; run by ezmlm
- References: <CAJt4KPYvi04qd0=0=2_QA6gu9EP56vjnYyhBUpC1S30SHAjXvQ@mail.gmail.com>
On 29 March 2012 22:55, Mitchell Burdette <mitchell.burdette@xxxxxxxxx> wrote:
> I rigged up a function that makes navigation super fast in zsh. If you
> hit enter on a blank line, it runs ls automatically.
>
> Just add the following to your .zshrc:
> auto-ls () {
> if [[ $#BUFFER -eq 0 ]]; then
> echo ""
> ls
> zle redisplay
> else
> zle accept-line
> fi
> }
> zle -N auto-ls
> bindkey '^M' auto-ls
>
> To get the ^M correct in vim, hit <Ctrl+V><Enter>. You could really
> make this run whatever you want, on any key you want, but I like this
> shortcut in particular (It goes great with autocd!).
A (slightly) more generic way to do it would be
auto-ls () {
if [[ $#BUFFER -eq 0 ]]; then
echo ""
ls
zle redisplay
else
zle .$WIDGET
fi
}
zle -N accept-line auto-ls
zle -N other-widget auto-ls
This uses the same function to wrap any widget, ie you might want it
on accept-and-hold and accept-line-and-down-history as well, or
something. Maybe not. Note that the . in .$WIDGET is important, or it
will call the wrapper recursively, .foo always calls the builtin
widget ignoring any custom widgets by the same name. (And $WIDGET is
obviously the name of the widget that caused the function to be
called).
--
Mikael Magnusson
Messages sorted by:
Reverse Date,
Date,
Thread,
Author