zsh-users
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: <zsh-users@zsh.org>
Subject: Re: Suffix alias for README files
Date: Wed, 20 Apr 2011 08:06:25 -0700	[thread overview]
Message-ID: <110420080625.ZM16423@torch.brasslantern.com> (raw)
In-Reply-To: <20110420124129.GB18289@cosy.cit.nih.gov>

> I can use suffix aliases to display various .txt files.
> Can I do a similar thing for README files? So the "command"
> 
> 	/some/path/README
> 
> will really run the command 
> 
> 	less /some/path/README

Depending on your version of zsh, you can do this either with the
zle-line-finish widget or by replacing the accept-line widget.

zle-line-finish() {
    setopt localoptions extendedglob
    if [[ -z "$PREBUFFER" && "$BUFFER" = ([^[:space:]]#/)#README ]]
    then BUFFER="less $BUFFER"
    fi
}
zle -N zle-line-finish

Or

accept-line() {
    setopt localoptions extendedglob
    if [[ -z "$PREBUFFER" && "$BUFFER" = ([^[:space:]]#/)#README ]]
    then BUFFER="less $BUFFER"
    fi
    zle .accept-line "$@"
}
zle -N accept-line


Aside to zsh-workers:

If no external command is found but a function command_not_found_handler
exists the shell executes this function with all command line arguments.

Perhaps "command found but permission denied" should be treated the same
as "command not found"?  Then one could handle this there as well, and
not have to mess with widgets.  See also recent discussion of bash/zsh
differences when the command is literally an empty string.


  reply	other threads:[~2011-04-20 15:06 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-19 13:59 Anthony R Fletcher
2011-04-20  9:23 ` Sebastian Stark
2011-04-20 12:41   ` Anthony R Fletcher
2011-04-20 15:06     ` Bart Schaefer [this message]
2011-04-20 16:44       ` Anthony R Fletcher
2011-04-20 17:25       ` John Eikenberry
2011-04-20 18:40         ` ZyX
2011-04-20 18:57           ` John Eikenberry
2011-04-20 19:22             ` ZyX

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=110420080625.ZM16423@torch.brasslantern.com \
    --to=schaefer@brasslantern.com \
    --cc=zsh-users@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).