我如何阅读有关内置zsh命令的文档?

当我做一些像man bindkey这样的东西时,我感到很沮丧, man bindkey我得到:

 BUILTIN(1)BSD通用命令手册BUILTIN(1)

名称
     内置的,!,%,。,:,@,{,},别名,分配,bg,绑定,绑定,break,breakw,builtins,case,cd,chdir,命令,
     完成,继续,默认,dirs,做,完成,回声,echotc,elif,其他,end,endif,endsw,esac,eval,exec,退出,
      export,false,fc,fg,filetest,fi,for,foreach,getopts,glob,goto,hash,hashstat,history,hup,if,jobid,
     作业,杀死,限制,本地,日志,login,注销,ls-F,很好,nohup,通知,onintr,popd,printenv,pushd,pwd,阅读,
      readonly,rehash,repeat,return,sched,set,setenv,settc,setty,setvar,shift,source,stop,suspend,switch,
      telltc,test,then,time,times,trap,true,type,ulimit,umask,unalias,uncomplete,unhash,unlimit,unset,
     直到等待,在哪里,哪一个,而 -  shell内置的命令

概要
     内build[-options] [args ...]

描述
      Shell内置命令是可以在运行中的shell进程中执行的命令。 请注意,在

有没有简单的方法来访问这些命令的文档?

尝试以下任一方法:

 man zshbuiltins 

要么

 man zshall 

zsh的手册页是按主题划分的, man zsh主要是目录和介绍目录,而man zshall是一切(我的系统上是24628行,而man bash是5242)。

至于bindkeyman zshbuiltins会把你man zshzle

获取更有用的帮助实用程序的关键信息实际上包含在Zsh中,这只是寻找关键的和man zshcontrib发现的手册页man zshcontrib ( 在网上 ),它描述了run-help小部件:

默认情况下, run-helpman命令的别名,所以当命令字是shell内build函数或用户定义的函数时,经常失败。 通过重新定义run-help别名,可以改进shell提供的在线帮助。

它进一步解释了如何用内置的改进来取代它。

设置好之后,为内build函数,完成函数等调用run-help现在将尝试向您显示提取的文档,或向您显示包含手册页等的权限。例如, run-help bindkey输出:

 bindkey See the section `Zle Builtins' in zshzle(1). 

这可能会更好。 为了更好的例子, run-help history显示了fc的zsh手册页部分,这是history背后的命令。

还需要注意的是: ESC-h将在当前input行上调用该命令的run-help

我认为这个设置不是默认设置,因为提取粒度帮助数据并设置HELPDIR指向它可能是一个留给OS分发的打包决定。 还有一个用户select: autoload run-help util根本不用设置HELPDIR 。 即使不能跳转到一个项目的确切部分,它似乎很擅长将您带到正确的手册页。 有些人可能更喜欢这种情况,像上面这个只是浪费时间的bindkey例子。 (为什么他们默认为alias run-help=man然后,我无法理解)。

对于Zsh版本5.0.3或更新

helpfiles提取可能包含在Zsh发行版中。 如果你愿意,可能候选人在/usr/share/zsh/usr/local/share/zsh中寻找help子目录,只需要在系统上find他们来设置HELPDIR

对于5.0.3之前的Zsh版本

您可能需要按照man zshcontrib详细介绍的步骤生成帮助文件。 需要这样做有点麻烦,但是否则快速而无痛。

使用zsh --version查找您的安装版本,并从sourceforge存档获取相应的源代码tarball。 然后运行helpfiles脚本,如手册页所示,并在~/.zshrc HELPDIR中将目标设置为HELPDIR

您可以将这些行添加到您的.zshrcconfiguration文件中:

 unalias run-help 2>/dev/null autoload run-help HELPDIR=/path/to/zsh_help_directory alias help=run-help 

其中/path/to/zsh_help_directory必须replace您的zsh帮助文件夹。 如果你在OS X上通过Homebrew安装zsh,这个文件夹是/usr/local/share/zsh/help

这将为bsh启用类似bash的帮助。

应该指出的是,如果zshloginshell的帮助文件的默认安装path存在并且包含所需的文件,那么HELPDIR=/path/to/zsh_help_directory第三行HELPDIR=/path/to/zsh_help_directory

源你的.zshrc( $ source .zshrc ),并检查一切正常工作与例如(拿起任何你想要的内置zsh,在这里我select了autoload ):

 $ help autoload 

注意2>/dev/null部分是需要的,因为没有它,std错误'unalias:没有这样的散列表元素:run-help'会在您每次获取.zshrc文件时都会发生,而run-help已经被parsing。

我从bash移动到zsh,并错过了“帮助”builtin。 所以我写了一个叫它的别名。 然后我想出了更好的东西。 虽然我有时必须打“n”一次或多次才能到我需要的手册中。

 help(){ #This function used to call the "bash" builtin. #bash -c "help $@" #Better way: look it up in the man pages. I often look up "test" which doesn't give a usefull result, #so I added that as a special case. if [[ $1 == "test" ]]; then man --pager="less -p'^CONDITIONAL EXPRESSIONS$'" zshall else man --pager="less -p'^ *$@ '" zshall fi } 

用Bash“帮忙”作品:

 jcomeau @ intrepid:〜/ etc / apache2 $ help直到
直到:直到COMMANDS; 做命令;  DONE
    只要testing不成功,就执行命令。

    展开并执行COMMANDS只要在最后的命令
    直到'命令的退出状态不为零。

    退出状态:
    返回最后执行的命令的状态。

每当我需要获取一些Zsh信息时,我终于厌倦了通过手册页和在线search进行search。 我仔细检查了Zsh的所有手册,并提出了一个相当广泛的“帮助”function。

要使用这个,我会在你的fpath某个地方创build一个名为“help”的文件,然后添加autoload -Uz help到你的zshrc。

 # better help function than zsh's crappy run-help local ZSHPAGE=zshall LESSQUERY LESS="-RM~gIsw" LESS_TERMCAP_mb=$'\E[01;31m' LESS_TERMCAP_md=$'\E[01;31m' LESS_TERMCAP_me=$'\E[0m' LESS_TERMCAP_se=$'\E[0m' LESS_TERMCAP_so=$'\E[01;44;33m' LESS_TERMCAP_ue=$'\E[0m' LESS_TERMCAP_us=$'\E[01;32m' case "$@" in ""|--help|-h) local cmds=' RESERVED WORDS do done esac then elif else fi for case if while function repeat time until select coproc nocorrect foreach end ! [[ { } declare export float integer local readonly typeset BUILTIN COMMANDS - . : [ [[ alias autoload bg bindkey break builtin bye cap cd chdir clone command comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues continue declare dirs disable disown echo echotc echoti emulate enable eval exec exit export false fc fg float functions getcap getln getopts hash history integer jobs kill lets limit local log logout noglob popd print printf pushd pushln pwd r read readonly rehash return sched set setcap setopt shift source stat suspend test times trap true ttyctl type typeset ulimit umask unalias unfunction unhash unlimit unset unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp ' if whence -p fold >/dev/null; then fold -sw$COLUMNS <<< $cmds else print -- $cmds fi return;; '-- '*) shift LESSQUERY="$@";; loop*|while|do|done|if|then|elif|else|fi|until) LESSQUERY='^COMPLEX COMMANDS$' ZSHPAGE=zshmisc;; for) LESSQUERY='^ for name \.\.\. ' ZSHPAGE=zshmisc;; foreach|end) LESSQUERY='^ foreach name \.\.\.' ZSHPAGE=zshmisc;; case|esac) LESSQUERY='^ case word' ZSHPAGE=zshmisc;; coproc) LESSQUERY='coproc' ZSHPAGE=zshmisc;; repeat) LESSQUERY='^ repeat word do' ZSHPAGE=zshmisc;; select) LESSQUERY='^ select name \[ in word' ZSHPAGE=zshmisc;; time) LESSQUERY='^ time \[ pipeline \]' ZSHPAGE=zshmisc;; list|'('*|'{'*|subshell) LESSQUERY='^ time \[ pipeline \]' ZSHPAGE=zshmisc;; '!'|not) LESSQUERY='^ \! exp true if exp is false\.' ZSHPAGE=zshmisc;; .) LESSQUERY='^ \. file \[ arg \.\.\. \]' ZSHPAGE=zshbuiltins;; :) LESSQUERY='^ : \[' ZSHPAGE=zshbuiltins;; alias) LESSQUERY='^ alias \[' ZSHPAGE=zshbuiltins;; autoload) LESSQUERY='^ autoload \[' ZSHPAGE=zshbuiltins;; *autoload*) LESSQUERY='^AUTOLOADING FUNCTIONS$' ZSHPAGE=zshmisc;; bg) LESSQUERY='^ bg \[' ZSHPAGE=zshbuiltins;; bindkey) LESSQUERY='^ZLE BUILTINS$' ZSHPAGE=zshzle;; break) LESSQUERY='^ break \[ n \]' ZSHPAGE=zshbuiltins;; -|exec|command|noglob|nocorrect|builtin|precommand*) LESSQUERY='^PRECOMMAND MODIFIERS$' ZSHPAGE=zshmisc;; bye) LESSQUERY='^ bye Same as exit\.' ZSHPAGE=zshbuiltins;; cap) LESSQUERY='^The zsh/cap Module$' ZSHPAGE=zshmodules;; cd) LESSQUERY='^ cd \[ -qsLP \] \[ arg \]' ZSHPAGE=zshbuiltins;; chdir) LESSQUERY='^ chdir Same as cd\.' ZSHPAGE=zshbuiltins;; clone) LESSQUERY='^The zsh/clone Module' ZSHPAGE=zshmodules;; compargu*) LESSQUERY='^ comparguments$' ZSHPAGE=zshmodules;; compcall) LESSQUERY='^ compcall \[ -TD' ZSHPAGE=zshcompwid;; compctl) LESSQUERY='^ compctl \[ -CDT' ZSHPAGE=zshcompctl;; compdes*) LESSQUERY='^ compdescribe$' ZSHPAGE=zshmodules;; compfiles) LESSQUERY='^ compfiles$' ZSHPAGE=zshmodules;; compgroups) LESSQUERY='^ compgroups$' ZSHPAGE=zshmodules;; compquote) LESSQUERY='^ compquote$' ZSHPAGE=zshmodules;; comptags) LESSQUERY='^ comptags$' ZSHPAGE=zshmodules;; comptry) LESSQUERY='^ comptry$' ZSHPAGE=zshmodules;; compvalues) LESSQUERY='^ compvalues$' ZSHPAGE=zshmodules;; continue) LESSQUERY='^ continue \[ n \]' ZSHPAGE=zshbuiltins;; dirs) LESSQUERY='^ dirs \[ -c \]' ZSHPAGE=zshbuiltins;; disable) LESSQUERY='^ disable \[ -afmprs \]' ZSHPAGE=zshbuiltins;; disown) LESSQUERY='^ disown \[ job \.\.\. \]' ZSHPAGE=zshbuiltins;; echo) LESSQUERY='^ echo \[ -neE \]' ZSHPAGE=zshbuiltins;; echotc) LESSQUERY='^The zsh/termcap Module$' ZSHPAGE=zshmodules;; echoti) LESSQUERY='^The zsh/terminfo Module$' ZSHPAGE=zshmodules;; emulate) LESSQUERY='^ emulate \[ -LR \]' ZSHPAGE=zshbuiltins;; enable) LESSQUERY='^ enable \[ -afmprs \]' ZSHPAGE=zshbuiltins;; eval) LESSQUERY='^ eval \[ arg \.\.\. \]' ZSHPAGE=zshbuiltins;; exit) LESSQUERY='^ exit \[ n \]' ZSHPAGE=zshbuiltins;; export) LESSQUERY='^ export \[ name' ZSHPAGE=zshbuiltins;; fc) LESSQUERY='^ fc \[ -e ename \] \[ -LI \]' ZSHPAGE=zshbuiltins;; fg) LESSQUERY='^ fg \[ job \.\.\. \]S' ZSHPAGE=zshbuiltins;; functions) LESSQUERY='^ functions \[ \{\+\|-\}UkmtTuz' ZSHPAGE=zshbuiltins;; getcap) LESSQUERY='^The zsh/cap Module$' ZSHPAGE=zshmodules;; getln) LESSQUERY='^ getln \[ -AclneE \]' ZSHPAGE=zshbuiltins;; getopts) LESSQUERY='^ getopts optstring name' ZSHPAGE=zshbuiltins;; hash) LESSQUERY='^ hash \[ -Ldfmrv \]' ZSHPAGE=zshbuiltins;; history) LESSQUERY='^HISTORY EXPANSION$';; integer) LESSQUERY='^ integer \[ \{\+\|-\}Hghlprtux' ZSHPAGE=zshbuiltins;; jobs) LESSQUERY='^ jobs \[ -dlprs \]' ZSHPAGE=zshbuiltins;; kill) LESSQUERY='^ kill \[ -s signal_name' ZSHPAGE=zshbuiltins;; limit) LESSQUERY='^ limit \[ -hs \]' ZSHPAGE=zshbuiltins;; local) LESSQUERY='^ local \[ \{\+\|-\}AHUahlprtux ' ZSHPAGE=zshbuiltins;; log) LESSQUERY='^ log List all' ZSHPAGE=zshbuiltins;; logout) LESSQUERY='^ logout \[ n \]' ZSHPAGE=zshbuiltins;; popd) LESSQUERY='^ popd \[ -q \]' ZSHPAGE=zshbuiltins;; print) LESSQUERY='^ print \[ -abcDilmnNoOpPrsSz \]' ZSHPAGE=zshbuiltins;; printf) LESSQUERY='^ printf format \[ arg \.\.\. \]' ZSHPAGE=zshbuiltins;; pushd) LESSQUERY='^ pushd \[ -qsLP \]' ZSHPAGE=zshbuiltins;; pushln) LESSQUERY='^ pushln \[ arg \.\.\. \]' ZSHPAGE=zshbuiltins;; pwd) LESSQUERY='^ pwd \[ -rLP \]' ZSHPAGE=zshbuiltins;; r) LESSQUERY='^ r Same as fc -e -\.' ZSHPAGE=zshbuiltins;; read) LESSQUERY='^ read \[ -rszpqAclneE \]' ZSHPAGE=zshbuiltins;; readonly) LESSQUERY='^ readonly$' ZSHPAGE=zshbuiltins;; rehash) LESSQUERY='^ rehash Same as hash -r\.' ZSHPAGE=zshbuiltins;; return) LESSQUERY='^ return \[ n \]' ZSHPAGE=zshbuiltins;; sched|'sched module') LESSQUERY='^THE ZSH/SCHED MODULE$' ZSHPAGE=zshmodules;; set) LESSQUERY='^ set \[ \{\+\|-\}options' ZSHPAGE=zshbuiltins;; setcap) LESSQUERY='^The zsh/cap Module$' ZSHPAGE=zshmodules;; setopt) LESSQUERY='^ setopt \[ \{\+\|-\}options' ZSHPAGE=zshbuiltins;; shift) LESSQUERY='^ shift \[ -p \]' ZSHPAGE=zshbuiltins;; source) LESSQUERY='^ source file \[ arg' ZSHPAGE=zshbuiltins;; stat|zstat|'stat module') LESSQUERY='^The zsh/stat Module$' ZSHPAGE=zshmodules;; times) LESSQUERY='^ times Print' ZSHPAGE=zshbuiltins;; test|'[['*|'['*) LESSQUERY='^CONDITIONAL EXPRESSIONS$' ZSHPAGE=zshmisc;; trap) LESSQUERY='^ trap \[ arg \] \[ sig \.\.\. \]' ZSHPAGE=zshbuiltins;; true) LESSQUERY='^ true \[ arg \.\.\. \]' ZSHPAGE=zshbuiltins;; ttyctl) LESSQUERY='^ ttyctl \[ -fu \]' ZSHPAGE=zshbuiltins;; type) LESSQUERY='^ type \[ -wfpamsS \]' ZSHPAGE=zshbuiltins;; typeset|declare) LESSQUERY='^ typeset \[ \{\+\|-\}AHUaghlmprtux \]' ZSHPAGE=zshbuiltins;; ulimit) LESSQUERY='^ ulimit \[ -HSa \] \[' ZSHPAGE=zshbuiltins;; umask) LESSQUERY='^ umask \[ -S \] \[ mask \]' ZSHPAGE=zshbuiltins;; unalias) LESSQUERY='^ unalias \[ -ams \]' ZSHPAGE=zshbuiltins;; unfunction) LESSQUERY='^ unfunction$' ZSHPAGE=zshbuiltins;; unhash) LESSQUERY='^ unhash \[ -adfms \]' ZSHPAGE=zshbuiltins;; unset) LESSQUERY='^ unset \[ -fmv \]' ZSHPAGE=zshbuiltins;; unsetopt) LESSQUERY='^ unsetopt \[ \{\+\|-\}options' ZSHPAGE=zshbuiltins;; vared) LESSQUERY='^ vared \[ -Aache \]' ZSHPAGE=zshzle;; wait) LESSQUERY='^ wait \[ job \.\.\. \]' ZSHPAGE=zshbuiltins;; whence) LESSQUERY='^ whence \[ -vcwfpamsS \]' ZSHPAGE=zshbuiltins;; where) LESSQUERY='^ where \[ -wpmsS \]' ZSHPAGE=zshbuiltins;; which) LESSQUERY='^ which \[ -wpamsS \]' ZSHPAGE=zshbuiltins;; zcompile) LESSQUERY='^ zcompile \[ -U \] \[ -z \|' ZSHPAGE=zshbuiltins;; zformat) LESSQUERY='^ zformat -f param format' ZSHPAGE=zshmodules;; zftp|'ftp module') LESSQUERY='^The zsh/zftp Module$' ZSHPAGE=zshmodules;; zle) LESSQUERY='^ zle -l \[ -L \| -a \] \[ string \.\.\. \]' ZSHPAGE=zshzle;; widget) LESSQUERY='^ widget \[ -n num \] \[ -Nw \]' ZSHPAGE=zshzle;; zmodload) LESSQUERY='^ zmodload \[ -dL \] \[ \.\.\. \]' ZSHPAGE=zshbuiltins;; zparseopts) LESSQUERY='^ zparseopts \[ -DKME \]' ZSHPAGE=zshmodules;; zprof|'zprof module') LESSQUERY='^THE ZSH/ZPROF MODULE$' ZSHPAGE=zshmodules;; zpty|'zpty module') LESSQUERY='^THE ZSH/ZPTY MODULE$' ZSHPAGE=zshmodules;; zregexparse) LESSQUERY='^ zregexparse$' ZSHPAGE=zshmodules;; zsocket|(net|socket)' module') LESSQUERY='^THE ZSH/NET/SOCKET MODULE$' ZSHPAGE=zshmodules;; zstyle|'zutil module') LESSQUERY='^The zsh/zutil Module$' ZSHPAGE=zshmodules;; ztcp|'tcp module') LESSQUERY='^THE ZSH/NET/TCP MODULE$' ZSHPAGE=zshmodules;; attr*mod*|zgetattr|zsetattr|zdelattr|zlistattr) LESSQUERY='^THE ZSH/ATTR MODULE$' ZSHPAGE=zshmodules;; complist*mod*) LESSQUERY='^THE ZSH/COMPLIST MODULE' ZSHPAGE=zshmodules;; computil*mod*) LESSQUERY='^THE ZSH/COMPUTIL MODULE' ZSHPAGE=zshmodules;; curses*|zcurses) LESSQUERY='^THE ZSH/CURSES MODULE' ZSHPAGE=zshmodules;; datetime*|strftime) LESSQUERY='^THE ZSH/DATETIME MODULE' ZSHPAGE=zshmodules;; (db|gdbm)*|ztie|zuntie) LESSQUERY='^THE ZSH/DB/GDBM MODULE' ZSHPAGE=zshmodules;; delto*|delete-to-char|zap-to-char) LESSQUERY='^THE ZSH/DELTOCHAR MODULE' ZSHPAGE=zshmodules;; example*) LESSQUERY='^THE ZSH/EXAMPLE MODULE' ZSHPAGE=zshmodules;; files*mod*|chgrp|chown|ln|mkdir|mv|rm|rmdir|sync) LESSQUERY='^THE ZSH/FILES MODULE' ZSHPAGE=zshmodules;; langinfo*) LESSQUERY='^THE ZSH/LANGINFO MODULE' ZSHPAGE=zshmodules;; mapfile*) LESSQUERY='^THE ZSH/MAPFILE MODULE' ZSHPAGE=zshmodules;; mathfunc*mod*) LESSQUERY='^THE ZSH/MATHFUNC MODULE' ZSHPAGE=zshmodules;; param*mod*) LESSQUERY='^THE ZSH/PARAMETER MODULE' ZSHPAGE=zshmodules;; pcre*) LESSQUERY='^THE ZSH/PCRE MODULE' ZSHPAGE=zshmodules;; regex*mod*) LESSQUERY='^THE ZSH/REGEX MODULE' ZSHPAGE=zshmodules;; system*mod*|syserror|sysopen|sysread|sysseek|syswrite|zsystem*) LESSQUERY='^THE ZSH/SYSTEM MODULE' ZSHPAGE=zshmodules;; zselect*) LESSQUERY='^THE ZSH/ZSELECT MODULE' ZSHPAGE=zshmodules;; start*flag*|invok*|initial*) LESSQUERY='^INVOCATION$' ZSHPAGE=zsh;; (start|shut)*file*|*zshenv|*zshrc|*zprofile|*zlogin|*zlogout|*zdotdir*|*ZDOTDIR*) LESSQUERY='^STARTUP/SHUTDOWN FILES$' ZSHPAGE=zsh;; subscript*) LESSQUERY='^ Subscript Flags' ZSHPAGE=zshparam;; simple*|pipe*) LESSQUERY='^SIMPLE COMMANDS & PIPELINES' ZSHPAGE=zshmisc;; function*) LESSQUERY='^ function word' ZSHPAGE=zshmisc;; alt*) LESSQUERY='^ALTERNATE FORMS$' ZSHPAGE=zshmisc;; reserv*) LESSQUERY='^RESERVED WORDS$' ZSHPAGE=zshmisc;; error*) LESSQUERY='^ERRORS$' ZSHPAGE=zshmisc;; alias*) LESSQUERY='^ALIASING$' ZSHPAGE=zshmisc;; quot*) LESSQUERY='^QUOTING$' ZSHPAGE=zshmisc;; redirect*|*'>'*|*'<'*|*'&>'*|*'2>'*|*'>>'*|*'<<'*) LESSQUERY='^REDIRECTION$' ZSHPAGE=zshmisc;; file*desc*) LESSQUERY='^OPENING FILE DESCRIPTORS USING PARAMETERS$' ZSHPAGE=zshmisc;; multios) LESSQUERY='^MULTIOS$' ZSHPAGE=zshmisc;; anon*func*) LESSQUERY='^ANONYMOUS FUNCTIONS$' ZSHPAGE=zshmisc;; hook*) LESSQUERY='^ Hook Functions$' ZSHPAGE=zshmisc;; trap*) LESSQUERY='^ Trap Functions$' ZSHPAGE=zshmisc;; job*) LESSQUERY='^JOBS$' ZSHPAGE=zshmisc;; math*|'(('*|'$(('|let*|arith*) LESSQUERY='^ARITHMETIC EVALUATION$' ZSHPAGE=zshmisc;; prompt|promptinit|prompt*theme*) LESSQUERY='^ prompt \[ -c \| -l \]' ZSHPAGE=zshcontrib;; PS1|prompt*|PROMPT*) LESSQUERY='^SIMPLE PROMPT ESCAPES$' ZSHPAGE=zshmisc;; history*) LESSQUERY='^HISTORY EXPANSION$' ZSHPAGE=zshexpn;; proc*sub*|*'<('*|*')>'*) LESSQUERY='^PROCESS SUBSTITUTION$' ZSHPAGE=zshexpn;; param*flag*) LESSQUERY='^ Parameter Expansion Flags$' ZSHPAGE=zshexpn;; param*rule*|nested*sub*) LESSQUERY='^ Rules$' ZSHPAGE=zshexpn;; param*ex*) LESSQUERY='^ Examples$' ZSHPAGE=zshexpn;; param*|'${') LESSQUERY='^PARAMETER EXPANSION$' ZSHPAGE=zshexpn;; brace*expan*) LESSQUERY='^BRACE EXPANSION$' ZSHPAGE=zshexpn;; filename*expan*) LESSQUERY='^FILENAME EXPANSION$' ZSHPAGE=zshexpn;; expan*|subst*) LESSQUERY='^ zshexpn - zsh expansion and substitution$' ZSHPAGE=zshexpn;; dyn*dir*) LESSQUERY='^ Dynamic named directories$' ZSHPAGE=zshexpn;; static*dir*) LESSQUERY='^ Static named directories$' ZSHPAGE=zshexpn;; approx*match*) LESSQUERY='^ Approximate Matching$' ZSHPAGE=zshexpn;; recurs*glob*) LESSQUERY='^ Recursive Globbing$' ZSHPAGE=zshexpn;; glob*qual*) LESSQUERY='^ Glob Qualifiers$' ZSHPAGE=zshexpn;; glob*flag*) LESSQUERY='^ Globbing Flags$' ZSHPAGE=zshexpn;; glob*) LESSQUERY='^ Glob Operators$' ZSHPAGE=zshexpn;; ksh*glob*) LESSQUERY='^ ksh-like Glob Operators' ZSHPAGE=zshexpn;; array*sub*) LESSQUERY='^ Array Subscripts$' ZSHPAGE=zshparam;; array*) LESSQUERY='^ARRAY PARAMETERS$' ZSHPAGE=zshparam;; positional*) LESSQUERY='^POSITIONAL PARAMETERS$' ZSHPAGE=zshparam;; shell*(param*|var*)|env*) LESSQUERY='^PARAMETERS SET BY THE SHELL$' ZSHPAGE=zshparam;; watchfmt*) LESSQUERY='^ WATCHFMT$' ZSHPAGE=zshparam;; set*|(shell|spec)*op*) LESSQUERY='^SPECIFYING OPTIONS$' ZSHPAGE=zshoptions;; single*opt*|short*flag*|single*letter*) LESSQUERY='^SINGLE LETTER OPTIONS$' ZSHPAGE=zshoptions;; (shell|zsh)*builtin*) LESSQUERY='^SHELL BUILTIN COMMANDS$' ZSHPAGE=zshbuiltins;; key*) LESSQUERY='^KEYMAPS$' ZSHPAGE=zshzle;; widget*) LESSQUERY='^USER-DEFINED WIDGETS$' ZSHPAGE=zshzle;; highlight*) LESSQUERY='^CHARACTER HIGHLIGHTING$' ZSHPAGE=zshzle;; comp*wid*) LESSQUERY='^ zshcompwid - zsh completion widgets' ZSHPAGE=zshcompwid;; complet*param*|*PREFIX*|*CURRENT*|*SUFFIX*) LESSQUERY='^COMPLETION SPECIAL PARAMETERS$' ZSHPAGE=zshcompwid;; compstate) LESSQUERY='^ compstate$' ZSHPAGE=zshcompwid;; compadd) LESSQUERY='^ compadd \[ -akqQfenUlo12C ' ZSHPAGE=zshcompwid;; compset) LESSQUERY='^ compset -p number' ZSHPAGE=zshcompwid;; compcall) LESSQUERY='^ compcall \[ -TD' ZSHPAGE=zshcompwid;; *match*) LESSQUERY='^COMPLETION MATCHING CONTROL$' ZSHPAGE=zshcompwid;; *compsys*) LESSQUERY='^ zshcompsys - zsh completion system' ZSHPAGE=zshcompsys;; compdef*) LESSQUERY='^ compdef \[ -ane \]' ZSHPAGE=zshcompsys;; '#'compdef*) LESSQUERY='^ #compdef name' ZSHPAGE=zshcompsys;; *completer*) LESSQUERY='^ completer$' ZSHPAGE=zshcompsys;; *complet*|*'zstyle '*) LESSQUERY='^COMPLETION SYSTEM CONFIGURATION$' ZSHPAGE=zshcompsys;; utility*func*|_argu*|_descr*) LESSQUERY='^UTILITY FUNCTIONS$' ZSHPAGE=zshcompsys;; control*func*|_func*) LESSQUERY='^CONTROL FUNCTIONS$' ZSHPAGE=zshcompsys;; calendar*) LESSQUERY='^ calendar \[ -abdDsv' ZSHPAGE=zshcalsys;; calsys*) LESSQUERY='^ zshcalsys - zsh calendar system' ZSHPAGE=zshcalsys;; tcp*) LESSQUERY='^ zshtcpsys - zsh tcp system' ZSHPAGE=zshtcpsys;; ftp*|zftp*) LESSQUERY='^ zshzftpsys - zftp function front-end' ZSHPAGE=zshzftpsys;; contrib*) LESSQUERY='^ zshcontrib - user contributions to zsh' ZSHPAGE=zshcontrib;; special*func*) LESSQUERY='^SPECIAL FUNCTIONS' ZSHPAGE=zshmisc;; color*comp*) LESSQUERY='^ Colored completion listings' ZSHPAGE=zshmodules;; colors) LESSQUERY='^ colors This function' ZSHPAGE=zshcontrib;; vcs*|version*control*) LESSQUERY='^GATHERING INFORMATION FROM VERSION CONTROL SYSTEMS$' ZSHPAGE=zshcontrib;; zle*) LESSQUERY='^ZLE FUNCTIONS$' ZSHPAGE=zshzle;; mime*) LESSQUERY='^MIME FUNCTIONS$' ZSHPAGE=zshcontrib;; zcalc*) LESSQUERY='^ zcalc \[ -ef' ZSHPAGE=zshcontrib;; zmathfuncdef) LESSQUERY='^ zmathfuncdef \[' ZSHPAGE=zshcontrib;; other*func*) LESSQUERY='^OTHER FUNCTIONS' ZSHPAGE=zshcontrib;; zargs) LESSQUERY=' zargs \[ option' ZSHPAGE=zshcontrib;; tetris*) LESSQUERY='^ tetris Zsh' ZSHPAGE=zshcontrib;; zed) LESSQUERY='^ zed \[ -f' ZSHPAGE=zshcontrib;; zmv|zcp|zln|zkbd) LESSQUERY='^ zmv \[ -finq' ZSHPAGE=zshcontrib;; zstyle+) LESSQUERY='^ zstyle\+ context' ZSHPAGE=zshcontrib;; file*) LESSQUERY='^FILES$' ZSHPAGE=zsh;; except*|throw|catch|always) LESSQUERY='^EXCEPTION HANDLING$' ZSHPAGE=zshcontrib;; *) LESSQUERY="$@";; esac man --pager="less -p'$LESSQUERY'" "$ZSHPAGE" 

它使用较less的传呼机,并减less对彩色手册页的termcap支持。 执行不带参数的help--help-h列出保留字和内置命令。 用其中一个字词inputhelp会使您有权进入相应的手册页。 我通过了缩小特定手册页中的条目来优化速度/效率,而不是仅仅使用man ... zshall 。 这个帮助函数find的不仅仅是保留字和内置命令。 它将定位模块的条目,模块命令,某些重要的完成命令,如compadd,compset等。

通过键入help mathhelp complethelp globhelp arrayshelp envhelp except ,许多部分关于算术,完成,通配符,数组,环境variables,exception处理等。 有通配符和多个匹配条件,使帮助function更友好。 这是一个相当简单的案例陈述,略超过210个匹配条件。 如果没有匹配,则默认为zshallsearch。 如果匹配条件没有显示您要查找的内容或似乎妨碍了您的search,请键入“ help --然后按search条件跳过所有匹配。

我包括了很多Zsh手册页面的内容,但是通过包含下划线前缀完成函数之类的内容,可以使其变得更加智能或者更加完整。


编辑:我做了^[h (esc / alt + h)的绑定键function。 run-help在默认情况下被绑定,并且replace它。

 _helpprefix(){ OLDBUFFER="$BUFFER" zle backward-kill-word BUFFER="help $CUTBUFFER" zle accept-line zle -U "$OLDBUFFER" } zle -N _helpprefix _helpprefix bindkey '^[h' _helpprefix 

这样做是删除键入的最后一个字,执行该字的help ,然后推回到原来的行。 所以你可以用这个命令来运行帮助:

 find /usr -print0 | while IFS= read 

查看条目后,您的命令结束后仍然是正确的。

另外值得注意的是,如果您需要某个特定内置标志的帮助,您可以随时在命令后面添加一个标签,然后点击标签以查看每个标志的简短描述,例如, read -标签打印出来:

 -A -- first name is taken as an array -E -- input read is echoed -d -- specify delimiter to terminate input instead of newline -e -- input read is echoed and not assigned -k -- specify number of characters to read -q -- read y or n character from terminal -r -- raw mode -s -- suppress terminal echoing -t -- test if input is available before reading -u -- specify file descriptor to read from -z -- read entry from editor buffer stack 

虽然这是更多的涉及到过去,到2017年(ZSH V5.4),获得一个非常快速和方便的帮助热手指下简单到将以下放入.zshrc (或等效的设置文件):

 unalias run-help autoload run-help bindkey "^[h" run-help 

现在你可以开始input你正在尝试调用的完整命令(opts / args – 例如“hello” – 将被忽略):

 print hello«Alt-h» 

你会看到run-help列表。

 print [ -abcDilmnNoOpPrsSz ] [ -un ] [ -f format ] [ -C cols ] [ -v name ] [ -xX tabstop ] [ -R [ -en ]] [ arg ... ] With the `-f' option the arguments are printed as described by printf... 

zshbuiltins(1)提取的大多数命令都有一个简短的列表。 我在/usr/share/zsh/5.4.2/help/看到我的系统上logging了109条命令。 喜欢Zsh的这个function!

请注意,并非所有内容都集成到了运行帮助中,而且有时您需要zshall(1)来查找您要查找的内容:

 % run-help zargs zargs is an autoload shell function No manual entry for zargs 

这个Alt-h (或者如果你喜欢的话)模式已经基本上取代了你通常对man进行的任何调用,对于Zsh命令或其他任何东西,这也是很棒的。 代替:

 % foo - # oh wait, how does this work % foo -^C % ^p^a # recall, go to beginning of line % man foo 

现在只是:

 % foo -«Alt-h» 

你的shell的手册页可能会告诉你。

如果在shell中(或浏览器的查找function)读取,则使用寻呼机的searchfunction。 对于less/search string开始search和n移动到下一个匹配。