From: Jarkko Maja <jarkko1982@yahoo.com>
To: zsh-users@sunsite.dk
Subject: man page completion / regexp
Date: Sun, 6 Jun 2004 03:09:44 -0700 (PDT) [thread overview]
Message-ID: <20040606100944.83762.qmail@web60310.mail.yahoo.com> (raw)
Hi,
I'm have in my zsh-4.0.7 ~/.zshrc the following for
man page completion:
# man page completion
man_glob () {
local a b manp cat
read -cA a
read -lA b
manp=`manpath 2> /dev/null` || manp=`echo
"$MANPATH"`
[[ "$OSTYPE" = *bsd* ]] && cat=,cat
if [[ "$a[2]" = [0-9nlpo](|p) ]] # && [[ -n
"$a[3]" || "${(M)b%
}" = " " ]]
then
reply=( ${^$(echo $manp | sed -e
's/:/
/g')}/{man,sman$cat}$a[2]/$1*(-N.:t) )
else
reply=( ${^$(echo $manp | sed -e
's/:/
/g')}/{man,sman$cat}[0-9nlpo]{,X,m}*/$1*(-N.:t) )
fi
reply=( ${reply%.[^0-9Xmnlpo]*} )
# Uncomment to strip trailing section names
from reply
#reply=( ${reply%.[0-9Xmnlpo]*} )
}
compctl -K man_glob -x 'C[-1,-P]' -m - \
'R[-*l*,;]' -g '*.(man|[0-9Xmnlpo](|[a-z]))'
-- + -f -g '..' man
# Uncomment to accept man page names with trailing
section names, e.g.,
man.1
man () {
local test=${(M)@#*/} # File name probably
contains a slash
if [[ -z "$test" ]] && [[ $# -lt 3 ]]
then
command man
${(M)${${(M)@%.[0-9Xmnlpo]*}#.}#[0-9Xmnlpo]}
${@%.[0-9Xmnlpo]*}
else
command man "$@"
fi
}
This works perfect in Linux/*BSD/Solaris. E.g., man
locale[TAB] gives: locale.1 locale.5 locale.7 etc and
man locale.7 becomes man 7 locale. And man 7
locale[TAB] shows only locale.7. However, with newer
versions of Linux's man-pages package there are also
sections like 0p, 1p, 3p and, e.g., man man.1p becomes
man 1 man. So, to overcome this, I got man 1p man by
this:
command man
${(M)${${(M)@%.[0-9Xmnlpo]*}#.}%%[0-9Xmnlpo](|p)}
${@%.[0-9Xmnlpo]*}
But then I have problem because man
X509_NAME_ENTRY_create_by_NID.3ssl becomes to man l
X509_NAME_ENTRY_create_by_NID and previously it was
correctly man 3 ... Also there man pages in dir
man/man3 like LWP.3pm.
Any hints are welcome, I've pretty much tested
everything I can imagine. If you can get this working,
I'd be delighted to know how to fix this!
Thanks in advance.
__________________________________
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! Messenger.
http://messenger.yahoo.com/
next reply other threads:[~2004-06-06 10:17 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-06-06 10:09 Jarkko Maja [this message]
2004-06-07 4:55 ` Bart Schaefer
2004-06-07 8:42 Michael Dettmer
[not found] <s0c446a5.012@fs-prx1.hansemerkur.de>
2004-06-07 19:45 ` Jarkko Maja
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=20040606100944.83762.qmail@web60310.mail.yahoo.com \
--to=jarkko1982@yahoo.com \
--cc=zsh-users@sunsite.dk \
/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).