GoGPT Best VPN GoSearch

OnWorks 网站图标

zshcompsys - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 zshcompsys

这是 zshcompsys 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


zshcompsys - zsh 补全系统

商品描述


这描述了“新”完成系统的外壳代码,称为 电脑系统。 它
是基于 shell 函数中描述的功能编写的 zshcompwid(1)。

这些功能是上下文相关的,对完成开始的点很敏感。 许多
已经提供了完成。 因此,用户可以执行很多任务
不知道除了如何初始化系统之外的任何细节,如下所述
在初始化中。

决定要执行什么完成的上下文可能是
· 一个参数或选项位置:这些描述在命令行上的位置
请求哪个完成。 例如`rmdir的第一个参数,单词
完成命名目录';

· 一个特殊的上下文,表示shell 语法中的一个元素。 例如`一个词
在命令位置'或'数组下标'。

正如我们将要描述的,完整的上下文规范包含其他元素。

除了命令名称和上下文之外,系统还使用了两个概念, 风格
标签. 这些为用户提供了配置系统行为的方法。

标签扮演着双重角色。 它们作为比赛的分类系统,通常
指示用户可能需要区分的一类对象。 例如,当
完成论证 ls 命令用户可能更愿意尝试 before
目录,所以这两个都是标签。 它们也显示为最右边的元素
上下文规范。

样式修改补全系统的各种操作,例如输出格式,但是
还使用了哪些类型的补全符(以及以什么顺序),或者检查了哪些标签。
样式可以接受参数并使用 风格 命令描述见
zsh模块(1)。

总之,标签描述 什么 完成对象是,和样式 形成一种 他们是
完全的。 在执行的各个点,完成系统检查什么风格
和/或标签是为当前上下文定义的,并使用它来修改其行为。
上下文处理的完整描述,它决定了标签和其他元素如何
上下文影响样式的行为,在下面的完成系统中描述
配置。

当请求完成时,调用调度程序函数; 见描述
_main_complete 在下面的控制功能列表中。 这个调度员决定哪个
应该调用函数来生成完成,并调用它。 结果通过了
对一个或多个 完成者, 实现单独完成策略的函数:
简单补全、纠错、纠错补全、菜单选择、
等等

更一般地,完成系统中包含的shell函数有两种类型:
·那些开头`补偿' 将被直接调用; 只有少数几个;

·那些开头`_' 由完成代码调用。 这个shell函数
实现完成行为并可能绑定到击键的 set 是
称为“小部件”。 随着需要新的完井项目,这些项目会激增。

初始化


如果系统安装完整,调用shell函数应该就够了
组合 来自您的初始化文件; 请参阅下一节。 然而,函数
安装 可以由用户运行以配置完成系统的各个方面。

通常情况下, 安装 将代码插入 .zshrc, 虽然如果那不可写
将其保存在另一个文件中并告诉您该文件的位置。 请注意,这取决于您
确保添加到的行 .zshrc 实际运行; 例如,您可能需要
将它们移动到文件中较早的位置,如果 .zshrc 通常会提前回来。 只要
你把它们放在一起(包括开始和结束的注释行),你可以
重新运行 安装 它会正确定位和修改这些行。 但是请注意,
如果您重新运行,您手动添加到此部分的任何代码都可能丢失
安装,虽然使用命令`风格' 应该优雅地处理。

新代码会在下次启动shell时生效,或者运行 .zshrc 用手; 那里
也是使它们立即生效的选项。 然而,如果 安装 具有
删除定义后,您需要重新启动 shell 才能看到更改。

跑步 安装 你需要确保它在你的目录中提到的目录中 路径
参数,如果 zsh 已正确配置,则应该已经是这种情况,只要您
启动文件不会从中删除适当的目录 路径. 那么一定是
自动加载(`自动加载 -U 安装' 被推荐)。 您可以中止安装任何
提示您提供信息的时间,以及 .zshrc 根本不会改变;
更改只发生在最后,在那里你被特别要求
确认。

使用 VHDL 语言编写 of 组合
本节介绍使用 组合 为当前初始化完成
直接调用时的会话; 如果你跑了 安装 它会被自动调用
从你的 .zshrc.

为了初始化系统,函数 组合 应该在提到的目录中
路径 参数,并且应该自动加载(`自动加载 -U 组合' 推荐),以及
然后简单地运行为`组合'。 这将定义一些实用功能,为所有
要自动加载的必要 shell 函数,然后将重新定义所有小部件
完成以使用新系统。 如果您使用 菜单选择 小部件,这是的一部分
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 zsh/comlist 模块,您应该确保在调用之前加载该模块
组合 以便该小部件也被重新定义。 如果完成样式(见下文)是
设置为默认执行扩展和完成,并且TAB键绑定到
展开或完成, 组合 将重新绑定到 完整词; 这是必要的使用
正确的展开形式。

如果您需要使用原始完成命令,您仍然可以将键绑定到
通过放置`的旧小部件.'在小部件名称前面,例如`.展开或完成'.

为了加快运行 组合,它可以用来产生一个转储的配置
将在未来的调用中阅读; 这是默认设置,但可以通过以下方式关闭
调用 组合 有选项 -D. 转储的文件是 .zcompdump 在同一个目录
作为启动文件(即 $ZDOTDIR or $ HOME); 或者,一个显式的文件名可以是
由`给出组合 -d 转储文件'。 下一次调用 组合 将读取转储
文件而不是执行完整的初始化。

如果完成文件的数量发生变化, 组合 将认识到这一点并产生一个新的
转储文件。 但是,如果函数名或第一行中的参数
#compdef 功能(如下所述)更改,最简单的方法是删除转储文件
手这样 组合 将在下次运行时重新创建它。 执行的检查
查看是否有新功能可以通过给出选项省略 -C。 在这种情况下
dump 文件只有在没有的情况下才会被创建。

转储实际上是由另一个函数完成的, 比较转储,但你只需要运行
如果您更改配置(例如使用 定义) 然后想转储
新的那一个。 为此,将记住旧转储文件的名称。

如果参数 _编译目录 设置, 组合 将其用作完成的目录
可以找到函数; 仅当它们不在函数中时才需要这样做
搜索路径。

出于安全原因 组合 还检查完成系统是否会使用文件
由 root 或当前用户拥有,或者目录中的文件是世界或
组可写的或不属于 root 或当前用户的。 如果此类文件或
找到目录, 组合 会询问是否真的应该使用补全系统。
为避免这些测试并使找到的所有文件无需询问即可使用,请使用选项 -u,
并使 组合 静默忽略所有不安全的文件和目录使用该选项 -i.
-C 给出了选项。

可以随时通过运行该函数重试安全检查 审计。 这是
使用的相同检查 组合,但是当它直接执行时,对 路径 旨在
使函数本地化,因此它们不会持久存在。 要检查的目录可能是
作为参数传递; 如果没有给出, 审计 使用 路径_编译目录
完成系统目录,将缺失的添加到 路径 有必要的。 强迫一个
检查当前命名的目录 路径,设定 _编译目录 到一个空字符串
打电话之前 审计 or 组合.

该功能 bashcominit 提供与 bash 的可编程完成的兼容性
系统。 运行时它将定义函数, 合成完成 对应于
具有相同名称的 bash 内置函数。 然后就可以使用完成
为 bash 编写的规范和功能。

自动加载
完成中使用的自动加载函数的约定是它们以
下划线; 如前所述, 路径/路径 参数必须包含目录
它们被存储。 如果 zsh的 已正确安装在您的系统上,然后 路径/路径
自动包含标准功能所需的目录。

对于不完整的安装,如果 组合 没有找到足够的文件开头
搜索路径中的下划线(少于 XNUMX 个),它将尝试通过添加
目录 _编译目录 到搜索路径。 如果该目录有一个名为的子目录 基值,
所有子目录都将添加到路径中。 此外,如果子目录 基值 有一个
子目录命名 核心科目, 组合 将子目录的所有子目录添加到
路径:这允许函数的格式与 zsh的 资源
分布。

在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 组合 运行时,它会搜索所有可通过以下方式访问的文件 路径/路径 并阅读
他们每个人的第一行。 这一行应该包含下面描述的标签之一。
第一行不以这些标签之一开头的文件不被视为一部分
的完成系统,不会被特殊对待。

标签是:

#compdef 姓名 ... [ -{p|P} 模式 ... [ -N 姓名 ...]]
该文件将成为可自动加载的,并且将调用其中定义的函数
完成时 姓名s,每个都是一个命令的名称,它的
论据将被完成,或者在形式中的许多特殊上下文之一
-上下文- 如下所述。

姓名 也可以是形式`CMD=服务'。 完成命令时 CMD,
该函数通常表现为命令(或特殊上下文) 服务
正在完成。 这提供了一种改变行为的方法
可以执行许多不同完成的函数。 它是由
设置参数 $服务 调用函数时; 功能可以选择
以它希望的方式解释它,更简单的函数可能会忽略它。

如果 #compdef 行包含选项之一 -p or -P,下面的词是
被视为模式。 尝试完成时将调用该函数
匹配其中一种模式的命令或上下文。 选项 -p-P 旨在
用于指定在其他完成之前或之后尝试的模式
分别。 因此 -P 可用于指定默认操作。

选项 -N 在以下列表之后使用 -p or -P; 它指定剩余的
词不再定义模式。 三者之间可以切换
根据需要多次选择。

#compdef -k 样式 关键序列 ...
此选项创建一个小部件,其行为类似于内置小部件 样式 并将其绑定到
给定的 关键序列s,如果有的话。 这 样式 必须是内置小部件之一
执行完成,即 完整词, 删除字符或列表, 展开或完成,
扩展或完成前缀, 列表选择, 菜单完成, 菜单展开或完成
反向菜单完成。 如果 zsh/comlist 模块已加载(请参阅 zsh模块(1))
小部件 菜单选择 也可以。

当其中之一 关键序列s 被输入,文件中的函数将被调用
生成匹配。 请注意,如果密钥已经是(即
是,被绑定到其他东西 未定义键)。 创建的小部件具有
与文件相同的名称,可以使用绑定到任何其他键 绑定键 像往常一样。

#compdef -K 小部件名称 样式 关键序列 [ 姓名 样式 以次 ...]
这与之类似 -k 除了只有一个 关键序列 可以提出论据
小部件名称 样式 一对。 但是,整个三个参数集可能是
用一组不同的参数重复。 特别要注意的是
小部件名称 在每个集合中必须是不同的。 如果它不以`开头_' 这会
添加。 这 小部件名称 不应与任何现有小部件的名称冲突:
基于函数名称的名称最有用。 例如,

#compdef -K _foo_complete 完整词 “^X^C” \
_foo_list 列表选择 “^X^D”

(全部在一行上)定义了一个小部件 _foo_complete 完成,绑定到`^X^C',
和一个小部件 _foo_list 上市,绑定到`^X^D'.

#自动加载 [ 选项 ]
功能与 #自动加载 标签被标记为自动加载,但不以其他方式标记
特殊对待。 通常,它们将从以下其中一个中调用
完成功能。 任何 选项 提供的将传递给 自动加载 内置;
一个典型的用途是 +X 强制立即加载函数。 请注意,
-U-z 标志总是隐式添加。

这个 # 是标签名称的一部分,后面不允许有空格。 这 #compdef 标签
使用 定义 功能描述如下; 主要区别在于名称
函数是隐式提供的。

可以定义完成函数的特殊上下文是:

-数组值-
数组赋值的右侧 (`姓名=(...)')

-支撑参数-
大括号内的参数扩展名(`${...}')

-分配参数-
赋值中参数的名称,即在`的左侧='

-命令-
指挥位置的一句话

-健康)状况-
条件中的一个词 (`[[...]]')

- 默认 -
任何没有定义其他补全的词

-平等的-
以等号开头的单词

-第一的-
这是在任何其他完成功能之前尝试的。 调用的函数可以设置
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 _compskip 参数为各种值之一: 所有: 没有进一步的完成
尝试过; 包含子字符串的字符串 模式: 没有模式完成
函数将被调用; 包含的字符串 默认: 函数
` - 默认 - ' 不会调用上下文,但会调用为命令定义的函数。

-数学- 在数学上下文中,例如`((...))'

-范围-
参数扩展名(`$...')

-重定向-
重定向运算符后的单词。

-下标-
参数下标的内容。

-波浪号-
在初始波浪号 (`~'),但在单词的第一个斜杠之前。

-价值-
在作业的右侧。

为这些上下文中的每一个提供了默认实现。 在大多数情况下
上下文 -上下文- 由相应的函数实现 _上下文,例如
上下文`-波浪号-'和函数`_波浪号“)。

上下文 -重定向--价值- 允许额外的特定于上下文的信息。
(在内部,这由调用函数的每个上下文的函数处理
_派遣.) 添加的额外信息以逗号分隔。

如报名参加 -重定向- 上下文,额外信息的形式是`-重定向-,op,命令',
协调 op 是重定向操作符和 命令 是该行的命令名称。
如果线路上还没有命令,则 命令 字段将为空。

如报名参加 -价值- 上下文,形式是`-价值-,姓名,命令', 在哪里 姓名 是的名字
赋值左侧的参数。 在元素的情况下
关联数组,例如`关联=(键 ', 姓名 扩展为`姓名-'。 在
某些特殊的上下文,例如在`之后完成使 标志=', 这 命令 部分给出
命令的名称,在这里 使; 否则为空。

没有必要定义完全特定的完成,因为提供的功能将
尝试通过用`逐步替换元素来生成完成 - 默认 - '。 为了
例如,在`之后完成时富=', _价值 将尝试名称`-值-,富,' (笔记
空的 命令 部分),`-值-,foo,-默认-'和`-值-,-默认-,-默认-', 在那里面
order,直到它找到一个函数来处理上下文。

举个例子:

定义 '_文件 -g “*。日志”' '-redirect-,2>,-default-'

完成文件匹配`*。日志' 在`之后2> ' 对于没有更具体的任何命令
处理程序定义。

除此之外:
定义 _foo -值-,-默认-,-默认-
指定 _foo 为没有特殊要求的参数值提供补全
功能已经定义。 这通常由函数处理 _价值 本身。

查找样式时使用相同的查找规则(如下所述); 例如

风格 ':completion:*:*:-redirect-,2>,*:*' 文件模式 '*。日志'

是在`之后完成的另一种方式2> ' 完整的文件匹配 `*。日志'.

功能
以下函数定义为 组合 并且可以直接调用。

定义 [ -安妮 ] function 姓名 ... [ -{p|P} 模式 ... [ -N 姓名 ...]]]
定义 -d 姓名 ...
定义 -k [ -一个 ] function 样式 关键序列 [ 关键序列 ...]
定义 -K [ -一个 ] function 姓名 样式 键序列 [ 姓名 样式 以次 ...]
第一种形式定义了 function 在给定的上下文中要求完成作为
描述为 #compdef 上面的标签。

或者,所有参数都可以采用‘CMD=服务'。 这里 服务
应该已经由`定义cmd1=服务' 行 #compdef 文件,如
如上所述。 的论点 CMD 将以同样的方式完成
服务.

这个 function 参数也可以是包含几乎任何外壳的字符串
代码。 如果字符串包含等号,则上述内容优先。 这
选项 -e 可用于指定第一个参数将被评估为 shell
代码,即使它包含等号。 该字符串将使用 评估
生成完成的内置命令。 这提供了一种避免不得不
定义一个新的完成函数。 例如,要完成以`结尾的文件.h' 作为
命令的参数 FOO:

定义 '_文件 -g “*。H”' FOO

选项 -n 阻止已为命令或上下文定义的任何完成
从被覆盖。

选项 -d 删除为列出的命令或上下文定义的任何完成。

这个 姓名s 也可能包含 -p, -P-N 选项如描述的 #compdef 标签。
对参数列表的影响是相同的,在定义之间切换
最初尝试的模式,最终尝试的模式,以及正常的命令和上下文。

参数 $_compskip 可以由为模式上下文定义的任何函数设置。
如果它被设置为一个包含子字符串的值`模式' 没有任何一个
模式函数将被调用; 如果它被设置为一个包含子字符串的值
`所有',不会调用其他函数。

表格与 -k 定义一个与 function 那将是
呼吁每个 关键序列s; 这就像 #compdef -k 标签。 这
函数应该生成所需的完成,否则将像
其名称被指定为的内置小部件 样式 争论。 可用于的小部件
这是: 完整词, 删除字符或列表, 展开或完成,
扩展或完成前缀, 列表选择, 菜单完成, 菜单展开或完成,
反向菜单完成以及 菜单选择 如果 zsh/comlist 模块是
加载。 选项 -n 防止键被绑定,如果它已经绑定到
除了 未定义键.

表格与 -K 是相似的,并基于相同的定义了多个小部件
function, 每个都需要三个参数的集合 姓名, 样式
键序列uence,其中后两者为 -k 第一个必须是唯一的
小部件名称以下划线开头。

在适用的情况下, -a 选项使 function 可自动加载,相当于
自动加载 -U function.

该功能 定义 可用于将现有完成功能与新功能相关联
命令。 例如,

定义 _pids FOO

使用函数 _pids 完成命令的进程 ID FOO.

另请注意 _gnu_generic 下面描述的函数,可以用来完成选项
对于理解`的命令 - 帮帮我' 选项。

竣工 系统 配置


本节简要概述完井系统的工作原理,然后更多
有关用户如何配置生成匹配项的方式和时间的详细信息。

概述
当在命令行的某处尝试完成时,完成系统开始
构建上下文。 上下文代表 shell 知道的关于
命令行的意义和光标位置的意义。 这需要
包括命令词(例如`grep的' 或`zsh的') 和
当前单词可以作为参数的选项(例如`-o' 选项 zsh的
将 shell 选项作为参数)。

上下文开始时非常通用(“我们正在开始完成”),然后变得更加
了解更多时具体(“当前词位于通常是命令的位置
name”或“当前词可能是一个变量名”等等)。因此上下文
在对完成系统的同一次调用中会有所不同。

这个上下文信息被压缩成一个由多个字段组成的字符串
用冒号分隔,在其余部分简称为“上下文”
文档。 请注意,完成系统的用户很少需要编写一个
上下文字符串,除非例如正在编写一个新函数来执行完成
对于新命令。 用户可能需要做的是编写一个 样式 模式,即
在需要查找配置的上下文相关选项时与上下文匹配
完成系统。

接下来的几段解释了如何在完成函数中组合上下文
套房。 接下来是讨论如何 风格 被定义。 风格决定了这样的
关于如何生成匹配的事情,类似于 shell 选项,但还有更多
控制。 它们被定义为 风格 内置命令(见 zsh模块(1))。

上下文字符串总是由一组固定的字段组成,以冒号分隔,并带有
在第一个之前的前导冒号。 未知的字段留空,但
无论如何都会出现周围的冒号。 字段始终按顺序排列
:完成:function:完成者:命令:论点:行李牌. 它们具有以下含义:

· 文字串 完成, 说这个样式是被补全用的
系统。 这将上下文与例如 zle 使用的上下文区分开来
小部件和 ZFTP 功能。

· function, 如果完成是从一个命名的小部件而不是通过
正常完成系统。 通常这是空白的,但它是由特殊设置的
小部件,例如 预测 以及各种功能 窗口小部件 的目录
分配到该函数的名称,通常是缩写形式。

· 完成者 当前处于活动状态,不带前导的函数名称
下划线和其他下划线转换为连字符。 一个“完成者”在
对如何完成的总体控制; `完成'是最简单的,
但存在其他完成者来执行相关任务,例如更正,或
修改后来完成者的行为。 请参阅“控制功能”部分
了解更多信息。

· 命令 或特殊 -上下文-,就在它出现在 #compdef 行李牌
或者 定义 功能。 具有子命令的命令的补全函数
通常修改此字段以包含命令名称后跟一个减号
符号和子命令。 例如,完成函数 CVS 命令
将此字段设置为 cvs-添加 在完成对 子命令。

· 论点; 这表明我们是哪个命令行或选项参数
完成。 对于命令参数,这通常采用以下形式 争论-n,在 Moku:Pro 上
n 是参数的编号,对于选项的参数,形式为 选项-选择-n
协调 n 是选项的参数编号 选择. 然而,这只是
如果命令行使用标准的 UNIX 样式选项和参数进行解析,
这么多完成没有设置这个。

· 行李牌. 如前所述,标签用于区分类型
匹配完成函数可以在特定上下文中生成。 任何完成
函数可以使用它喜欢的任何标签名称,但给出了更常见的列表
联络一位教师

随着函数的执行,上下文逐渐组合在一起,从
主要入口点,它添加 :完成:function 必要时元素。 这
完成者然后添加 完成者 元素。 上下文完成添加了 命令
论点 选项。 最后, 行李牌 当完成类型已知时添加。 为了
例如,上下文名称

:完成::完成:dvips:选项-o-1:文件

表示尝试正常完成作为选项的第一个参数 -o
命令 会员:

会员 -o ...

并且完成功能将生成文件名。

通常会按照完成给出的顺序对所有可能的标签尝试完成
功能。 但是,这可以通过使用 标签顺序 风格。 完成就是
仅限于给定顺序的给定标签列表。

这个 _完整_帮助 bindable 命令显示所有可用的上下文和标签
在特定点完成。 这提供了一种查找信息的简便方法
标签顺序 和其他风格。 它在下面的“可绑定命令”部分中进行了描述。

在查找样式时,完成系统使用完整的上下文名称,包括标签。
因此,查找样式的值包括两件事:上下文,即
与最具体(最合适)的款式图案相匹配,以及款式名称
本身,必须完全匹配。 下面的例子展示了这种风格
可以为广泛应用的样式松散定义模式,也可以严格定义为
适用于较窄环境的样式所需。

例如,许多完成函数可以以简单和冗长的形式生成匹配项
并使用 详细 style 来决定应该使用哪种形式。 使所有这些功能
使用详细形式,把

风格 ':完成:*' 详细

在启动文件中(可能 .zshrc)。 这给 详细 样式值 在每一个
完成系统内的上下文,除非该上下文有更具体的定义。
最好避免将上下文作为`*' 以防样式在外面有一些意义
完成系统。

许多此类通用样式可以通过使用 安装
功能。

更具体的使用示例 详细 风格是由完成为
内置。 如果设置了样式,则内置程序会列出完整的作业文本和进程命令行;
否则它会显示裸作业号和 PID。 为此用途关闭样式
只要:

风格 ':完成:*:*:杀死:*:*' 详细 没有

为了获得更多控制,样式可以使用标签之一`工作' 或`工艺'。 转
仅针对作业关闭详细显示:

风格 ':completion:*:*:kill:*:jobs' 详细 没有

这个 -e 选项 风格 甚至允许完成函数代码作为参数出现
一种风格; 这需要对完成函数的内部结构有一些了解(参见
请点击 zshcompwid(1)))。 例如,

风格 -e ':完成:*' 为了 '回复=($myhosts)'

这迫使价值 为了 要从变量中读取的样式 我的主机 每次
需要主机名; 如果值为 我的主机 可以动态变化。 为了
另一个有用的示例,请参阅说明中的示例 文件列表 样式如下。
这种形式可能很慢,应该避免用于通常检查的样式,例如 菜单
列表行优先.

请注意,样式的顺序 定义 不要紧; 样式机制使用
特定样式的最具体可能匹配以确定值集。
更准确地说,字符串比模式更受欢迎(例如,
`:完成::完成:::富' 比 ` 更具体:completion::complete:::*'),
较长的模式优于较短的模式。

一个好的经验法则是,任何需要包含超过
一个通配符 (*) 并且不以标记名称结尾,应包括所有六个冒号 (:),
可能围绕额外的通配符。

像标签这样的样式名称是任意的,取决于完成功能。
但是,以下两节列出了一些最常见的标签和样式。

标准版 标签
以下部分仅在查找特定样式时使用,不参考
一种匹配。

账户
用于查找 用户-主机 样式

全面扩张
_扩张 添加包含所有可能的单个字符串时的完成者
扩展

所有文件
有关所有文件的名称(与特定子集不同,请参阅
全局文件 标签)。

参数
用于命令的参数

数组 对于数组参数的名称

关联键
对于关联数组的键; 在下标内完成时使用
这种类型的参数

书签
完成书签(例如,对于 URL 和 ftp 功能套件)

内置函数
对于内置命令的名称

字符
对于命令参数中的单个字符,例如 姿势. 也用于当
在左括号后完成字符类

颜色表
对于 X 颜色图 ID

颜色 对于颜色名称

命令
用于外部命令的名称。 也被复杂的命令使用,例如 CVS ,尤其是
完成名称子命令。

上下文
对于参数中的上下文 风格 内置命令

更正
_近似_正确的 可能的更正的完成者

游标
X 程序使用的游标名称

默认
在某些上下文中用于提供一种在更具体时提供默认值的方法
标签也是有效的。 请注意,此标签仅在 function 现场
上下文名称已设置

说明
在查找值时使用 格式 生成描述的样式
比赛类型

设备
用于设备特殊文件的名称

目录
对于目录名称- 本地目录 完成时改为使用
论据 cd 和相关的内置命令,当 路径 数组已设置

目录栈
对于目录堆栈中的条目

显示器
对于 X 显示名称

域名
对于网络域

扩展
_扩张 单个词的完成者(相对于完整的词集
扩展)由命令行上的单词扩展产生

扩展
用于 X 服务器扩展

文件描述符
用于打开文件描述符的数量

完成文件名的函数使用的通用文件匹配标签

字体 对于 X 字体名称

类型
对于文件系统类型(例如对于 安装 命令)

功能
函数名称——通常是 shell 函数,尽管某些命令可能会
了解其他类型的函数

全局文件
对于文件名,当名称已通过模式匹配生成时

团体 对于用户组的名称

历史词
历史上的话

为了 对于主机名

指标
对于数组索引

工作 对于工作(如`工作' 内置)

接口
用于网络接口

键盘映射
用于 zsh 键盘映射的名称

键符
用于 X 键符的名称


对于系统库的名称

范围 对于系统限制

本地目录
对于作为当前工作目录的子目录的目录的名称
在完成论据时 cd 和相关的内置命令(比较
路径目录) - 当。。。的时候 路径 数组未设置, 目录 用于代替

指南
手册页的名称

邮箱
用于电子邮件文件夹

地图 用于地图名称(例如 NIS 地图)

条未读消息
用于查找 格式 消息样式

修饰符
X 修饰符的名称

模块
对于模块(例如 zsh的 模块)

我的账户
用于查找 用户-主机 样式

命名目录
对于命名目录(您不会猜到的,是吗?)

名称 各种名字

新闻组
对于 USENET 组

昵称
NIS 映射的昵称

选项
对于命令选项

原版的
_近似, _正确的_扩张 完成者在提供
原始字符串作为匹配

其他账户
用于查找 用户-主机 样式

其它文件
对于任何非目录文件的名称。 这是用来代替 所有文件 ,尤其是
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 列表目录优先 样式生效。


对于包(例如 或安装 Debian 套餐)

参数
对于参数名称

路径目录
对于通过搜索找到的目录的名称 路径 完成时的数组
论据 cd 和相关的内置命令(比较 本地目录)

路径 用于查找的值 扩大, 暧昧特殊目录 风格

豆荚 对于 perl pod(文档文件)

港口 用于通讯端口

前缀
用于前缀(如 URL 的前缀)

打印机
用于打印队列名称

工艺
对于进程标识符

进程名称
用于查找 命令 生成进程名称时的样式
killall

序列
对于序列(例如 mh 序列)

招生面试
对于会议中的 ftp 功能套件

信号
对于信号名称

字符串
对于字符串(例如替换字符串 cd 内置命令)

风格 zstyle 内置命令使用的样式

后缀
对于文件扩展名

标签 对于标签(例如 标签)

目标
对于 makefile 目标

时区
对于时区(例如,当设置 TZ 参数)

类型 对于任何类型(例如 主机 命令)

网址 用于查找 网址本地 完成 URL 时的样式

用户 对于用户名

价值观 对于某些列表中的一组值之一

变种
用于 _pick_variant 在确定什么程序时查找要运行的命令
为特定的命令名称安装。

视觉效果
用于 X 视觉效果

警告
用于查找 格式 警告样式

小部件
对于 zsh 小部件名称

窗户
用于 X 窗口的 ID

zsh-选项
对于外壳选项

标准版 样式
请注意,其中几种样式的值表示布尔值。 任何
字符串`true',`on',`',和`1' 可用于值 `true' 和任何
字符串`false',`折扣',`没有',和`0' 为值 'false'。 任何其他行为
除非明确提及,否则值未定义。 默认值可以是
如果未设置样式,则为“true”或“false”。

其中一些样式首先针对对应于一种类型的每个可能的标签进行测试
匹配,如果没有找到样式,则为 默认 标签。 最显着的风格
类型是 菜单, 列表颜色 和控制完成列表的样式,例如 列表包装
最后提示. 当测试为 默认 标签,只有 function 上下文领域
将被设置,以便使用默认标签的样式通常会沿线定义
作者:

风格 ':完成:*:默认' 菜单 ...

接受精确
除了对当前有效的标签外,还针对默认标签进行了测试
语境。 如果它设置为“true”并且任何试验匹配与
命令行上的字符串,这个匹配将立即被接受(即使它
否则会被认为是模棱两可的)。

完成路径名时(其中使用的标签是 `路径') 这种风格接受任何
除了布尔值之外,作为值的模式数。 路径名
匹配这些模式之一将立即被接受,即使命令
行包含一些更多部分键入的路径名组件,并且这些不匹配文件
在接受的目录下。

这种风格也被使用 _扩张 完成者决定单词是否以
应扩展波浪号或参数扩展。 例如,如果有
参数 FOOfoob​​ar,字符串`$ foo' 只会在以下情况下扩展 接受精确
设置为“真”; 否则完成系统将被允许完成 $ foo
$foobar. 如果样式设置为`继续', _扩张 将添加扩展作为
比赛和完成系统也将被允许继续。

接受精确目录
这由文件名完成使用。 不像 接受精确 它是一个布尔值。 经过
默认情况下,文件名完成检查路径的所有组件以查看是否存在
该组件的完成,即使该组件与现有目录匹配。
例如,当完成后 / usr / bin /, 函数检查可能
完成 在/ usr.

当此样式为“true”时,匹配现有目录的路径的任何前缀
被接受而没有任何尝试进一步完成它。 因此,在给定的
例如,路径 / usr / bin / 立即被接受并尝试完成
目录。

如果您希望完全禁止这种行为,请设置 路径完成 样式(请参见
下面)到“假”。

添加空间
这种风格被 _扩张 完成者。 如果它是“真”(默认),一个
在扩展产生的所有单词之后将插入空格,或在
目录名称的情况。 如果值为`文件',完成者只会添加一个
空间到现有文件的名称。 布尔值“true”或值“文件' 可能
结合`SUBST',在这种情况下,完成者不会为单词添加空格
从形式`的替代的扩展产生$(...)' 或`${...}'.

这个 _字首 completer 使用这种风格作为一个简单的布尔值来决定一个
应在后缀前插入空格。

暧昧
这适用于完成文件名路径的非最终组件,换句话说
带有斜线的那些。 如果设置,则光标在第一个之后
模棱两可的组件,即使正在使用菜单完成。 风格总是经过测试
路径 标签。

分配列表
在被视为赋值的等号之后完成时,
完成系统通常只完成一个文件名。 在某些情况下,价值
可能是由冒号分隔的文件名列表,如 PATH 和类似的
参数。 可以将此样式设置为与此类名称匹配的模式列表
参数。

默认是当行上的单词已经包含一个完整的列表
冒号。

自动描述
如果设置,则此样式的值将用作未设置的选项的描述
由完成函数描述,但只有一个参数。 这
序列`%d' 值中的将被此参数的描述替换。
根据个人喜好,将此样式设置为某些东西可能会很有用
喜欢`指定: %d'。 请注意,这可能不适用于某些命令。

避免完成者
这是由 _所有_匹配 完成者来决定字符串是否由
所有匹配项都应添加到当前生成的列表中。 它的值是一个
完成者名单。 如果其中任何一个是完成者的名字,
在此完成中生成匹配项,将不会添加字符串。

此样式的默认值为 `_扩张 _旧_列表 _正确的 _近似', IE
它包含几乎永远不会出现具有所有匹配项的字符串的完成者
通缉。

缓存路径
此样式定义包含转储完成数据的任何缓存文件的路径
被存储。 它默认为`$ZDOTDIR/.zcompcache',或`$HOME/.zcompcache' 如果
$ZDOTDIR 没有定义。 完成缓存将不会被使用,除非
使用缓存 风格已定。

缓存策略
此样式定义将用于确定缓存是否
需要重建。 请参阅有关的部分 _缓存_无效 下面的功能。

呼叫命令
此样式用于函数中的命令,例如 使蚂蚁 在哪里打电话
直接生成匹配的命令会遇到一些问题,例如速度慢,或者,作为
在箱子 使 可能会导致执行 makefile 中的操作。
如果设置为“true”,则调用该命令以生成匹配项。 默认值
这种风格是“假的”。

命令
很多地方,补全函数需要调用外部命令来生成
完成清单。 此样式可用于覆盖调用的命令
在一些这样的情况下。 值的元素用空格连接起来形成一个
要执行的命令行。 该值也可以以连字符开头,在这种情况下
通常的命令将被添加到最后; 这对于放置`最有用内建的'
或`命令' 在前面以确保调用了适当版本的命令,
例如为了避免调用与外部同名的 shell 函数
命令。

例如,进程 ID 的完成函数使用这种风格和
工艺 标记以生成要完成的 ID 和要显示的进程列表
(如果 详细 风格是“真”)。 命令生成的列表应该看起来
就像输出 ps 命令。 第一行不显示,但显示
搜索字符串`电位诱导衰减'(或`PID') 查找进程 ID 的位置
以下几行。 如果该行不包含`电位诱导衰减',每个数字中的第一个数字
其他行作为进程 ID 来完成。

注意完成函数一般要调用指定的命令
每次尝试生成完成列表。 因此应注意
仅指定运行时间较短的命令,尤其是要避免任何
这可能永远不会终止。

命令路径
这是用于搜索要完成的命令的目录列表。 默认为
这个样式是特殊参数的值 .

命令
这由完成系统初始化的子命令的函数使用
脚本(驻留在 /etc/init.d中 或离那里不太远的地方)。 它的
值给出默认命令来完成那些命令
完成功能无法自动找到它们。 默认为
这种风格是两个字符串`开始'和`停止'.

完成
这是由 _expand_alias 作为可绑定命令调用时的函数。 如果
设置为“true”并且命令行上的单词不是别名的名称,
匹配别名将完成。

完整选项
这被完成者用于 cd, 目录PUSHD. 对于这些命令 - is
用于引入一个目录堆栈条目和完成这些的远不止这些
比完成选项更常见。 因此,除非此样式的值为“true”
选项不会完成,即使在初始 -. 如果它是“真”,则选项
将在初步完成后 - 除非前面有 -- 在命令上
线。

完成者
作为此样式值给出的字符串提供完成者的名称
要使用的功能。 可用的完成器功能在部分中描述
“控制功能”如下。

每个字符串可以是一个完成函数的名称,也可以是以下形式的字符串
`function:姓名'。 在第一种情况下 完成者 上下文的字段将包含
完成者的名称,不带前导下划线和所有其他
下划线替换为连字符。 在第二种情况下 function 是的名字
要调用的完成者,但上下文将包含用户定义的 姓名 ,在
完成者 上下文的字段。 如果 姓名 以连字符开头,字符串为
上下文将根据第一个完成函数的名称构建
案例与 姓名 附加到它。 例如:

风格 ':完成:*' 完成者 _完成 _完成:-foo

在这里,完成将调用 _完成 完成两次,一次使用`完成'和
一旦使用`完整的foo' 在里面 完成者 上下文的字段。 通常,使用
同一个完成者不止一次只有在与
`功能:姓名' 形式,因为否则上下文名称将在所有
调用完成者; 这条规则的可能例外是 _忽略
_字首 完成者。

此样式的默认值为 `_完成 _忽略':只有完成才会
完成,首先使用 忽略模式 风格和 $忽略 数组然后
不忽略匹配。

流程条件
这种风格被 _列表 完成函数来决定是否插入
比赛应无条件推迟。 默认值为“真”。

定界符
在添加与历史修饰符或 glob 一起使用的分隔符时使用此样式
具有分隔参数的限定符。 它是一组首选分隔符
加上。 非特殊字符是首选,因为完成系统可能
否则就糊涂了。 默认列表是 :, +, /, -, %. 名单可能是
为空以强制键入分隔符。

禁用
如果设置为“true”,则 _expand_alias 完成者和可绑定命令将尝试
也可以扩展禁用的别名。 默认值为“假”。

域名
用于完成的网络域名称列表。 如果没有设置,域
名称将从文件中获取 / etc / resolv.conf中.

关于
完成`时使用环境样式须藤'。 它被设置为一个数组
`VAR=折扣值' 在执行之前要导出到本地环境的分配
目标命令的完成被调用。
风格 ':completion:*:sudo::' 关于 \
路径=“/宾:/ usr / sbin:$PATH" 首页=/根"

扩大 完成由多个部分组成的字符串时使用此样式,例如
路径名。

如果它的值之一是字符串`字首',该行中部分键入的单词
即使无法完成尾随部分,也会尽可能扩展。

如果它的值之一是字符串`后缀', 匹配后面的组件名称
第一个不明确的也将被添加。 这意味着结果字符串
是最长的无歧义字符串。 但是,可以使用菜单完成
循环浏览所有比赛。

可以为任何完成上下文设置此样式。 它指定了额外的字符串
这将始终在这种情况下完成。 每个字符串的形式是
`折扣值:描述'; 冒号和描述可以省略,但任何文字
冒号 折扣值 必须用反斜杠引用。 任何 描述 提供显示
与完成列表中的价值一起。

在指定 fake 时使用足够严格的上下文很重要
字符串。 注意样式 假文件假参数 提供额外的
完成文件或参数时的功能。

总是假的
这与 风格除了 忽略模式 风格是
不适用于它。 这使得可以完全覆盖一组匹配
通过将忽略的模式设置为`*'.

下面显示了一种用任意数据补充任何标签的方法,但具有
它的行为就像一个单独的标签一样用于显示目的。 在这个例子中,我们使用
的特点 标签顺序 风格来划分 命名目录 标记为两个时
使用标准完成者执行完成 完成 对于论据 cd.
标签 命名目录正常 行为正常,但标签
命名目录矿 包含一组固定的目录。 这具有以下效果
添加匹配组`额外 目录' 与给定的完成。

风格 ':completion::complete:cd:*' 标签顺序 \
'命名目录:-我的:额外\ 目录
命名目录:-正常:命名\ 目录 *'
风格 ':completion::complete:cd:*:named-directories-mine' \
总是假的 目录1 目录2
风格 ':completion::complete:cd:*:named-directories-mine' \
忽略模式 '*'

假文件
此样式用于完成文件并在没有标签的情况下查找。 它的价值
是形式`DIR:名字...'。 这将添加 名称 (字符串由
空格)在目录中完成时尽可能匹配 DIR, 即使没有这样的
文件确实存在。 dir 可能是一个模式; 模式字符或冒号 DIR
应该用反斜杠引用以按字面处理。

这在支持顶级文件系统的系统上很有用
不能使用 glob 模式列出或生成路径名。 也可以使用
对于没有读取权限的目录。

模式形式可用于将某个“魔术”条目添加到某个目录上的所有目录中。
特定的文件系统。

假参数
这是参数名称的完成函数使用的。 它的值是名称
可能尚未设置但仍应完成的参数。 每个
name 也可以后跟一个冒号和一个字符串,指定类型
参数(如`纯量',`排列' 或`整数')。 如果给出类型,则名称
仅当特定类型中需要该类型的参数时才会完成
语境。 未指定类型的名称将始终完成。

文件列表
此样式控制文件是否使用标准内置机制完成
将与类似的长列表一起列出 ls -l. 请注意,此功能使用
外壳模块 zsh/统计 用于文件信息; 这会加载内置 统计
将取代任何外部 统计 可执行。 为了避免这种情况,可以使用以下代码
包含在初始化文件中:

加载 -i zsh/统计
关闭 统计

样式可以设置为“真”值(或“所有'),或其中一个值
`' 或`名单', 表示所有文件都以长格式列出
情况,或尝试插入文件名时,或列出文件名时
而不尝试插入一个。

更一般地,该值可以是上述任何值的数组,可选
其次是 =NUM。 如果 NUM 存在它给出了最大匹配数
将使用哪种长列表样式。 例如,

风格 ':完成:*' 文件列表 列表=20 插入=10

指定在列出最多 20 个文件或插入一个
最多包含 10 个匹配项的文件(假设要显示一个列表,例如
在不明确的完成时),否则将使用短格式。

风格 -e ':完成:*' 文件列表 \
'(( ${+数字} )) && 回复=(真)'

指定在提供数字参数时将使用长格式,
其他短格式。

文件模式
标准函数使用它来完成文件名, _FILES。 如果
样式未设置,最多提供三个标签,`全局文件',`目录'和
`所有文件',取决于调用者期望的文件类型 _FILES.
前两个(`全局文件'和`目录') 通常一起提供给
更容易完成子目录中的文件。

这个 文件模式 style 提供了默认标签的替代品,这些标签不是
用过的。 它的值由形式为`的元素组成模式:行李牌'; 每个字符串可以
包含任意数量的由空格分隔的此类规范。

这个 模式 是用于生成文件名的模式。 任何发生
序列`%p' 被函数调用传递的任何模式替换
_FILES. 模式中的冒号前面必须有反斜杠才能使它们
区别于冒号之前的冒号 行李牌. 如果需要多个模式,
可以在大括号内给出模式,用逗号分隔。

这个 行李牌值中所有字符串的 s 将由 _FILES 并在使用时
寻找其他款式。 任何 行李牌同一个词中的 s 将同时提供
时间和后来的话。 如果没有`:行李牌' 给出了 `' 标签将被使用。

这个 行李牌 也可以后跟可选的第二个冒号和描述,其中
将用于`%d' 的值 格式 样式(如果已设置)代替
完成函数提供的默认描述。 如果描述
此处给出的自身包含一个 `%d',即替换为提供的描述
通过完成功能。

例如,为了使 rm 命令首先只完成目标文件的名称和
如果没有匹配的目标文件,则所有文件的名称:

风格 ':完成:*:*:rm:*:*' 文件模式 \
'*.o:目标文件' '%p:所有文件'

改变文件完成的默认行为——提供匹配模式的文件
和第一次尝试的目录,然后是所有文件——只提供匹配
第一次尝试的文件,然后是目录,最后是所有文件:

风格 ':完成:*' 文件模式 \
'%p:globbed-文件' '*(-/):目录' '*:所有文件'

即使在没有特殊模式的情况下,这也有效: _FILES 匹配所有文件使用
模式`*' 在第一步并在看到此模式时停止。 还要注意
对于一次完成尝试,它永远不会多次尝试模式。

在完成函数的执行过程中, EXTENDED_GLOB 选项在
效果,所以字符`#',`~'和`^' 在模式中具有特殊含义。

文件排序
标准的文件名补全功能使用这种没有标签的风格来
确定应以何种顺序列出名称; 菜单完成将循环
以相同的顺序通过它们。 可能的值是:`尺寸' 排序
文件大小; `链接' 按文件的链接数排序;
`修改'(或`' 或`日期') 按最后修改时间排序;
`ACCESS' 按上次访问时间排序; 和`索引节点'(或`更改') 排序
上次 inode 更改时间。 如果样式设置为任何其他值或未设置,文件
将按名称的字母顺序排序。 如果该值包含字符串`反转',
排序以相反的顺序进行。 如果该值包含字符串`遵循',
时间戳与符号链接的目标相关联; 默认是使用
链接本身的时间戳。

过滤 LDAP 插件使用它来完成电子邮件地址以指定
过滤条目时要匹配的属性。 例如,如果样式
设置为`sn',匹配是针对姓氏进行的。 使用标准 LDAP 过滤
所以正常的完成匹配被绕过。 如果未设置此样式,则 LDAP
插件被跳过。 您可能还需要设置 命令 样式来指定如何
连接到您的 LDAP 服务器。

强制列表
这会强制在完成列表的任何点显示完成列表,
即使在列表通常会被禁止的情况下。 例如,通常
只有在至少有两个不同的匹配项时才会显示该列表。 通过设置
这种风格以`时刻',列表将始终显示,即使只有一个
将立即被接受的单场比赛。 样式也可以设置为
数字。 在这种情况下,如果至少有那么多,将显示列表
匹配,即使它们都会插入相同的字符串。

此样式针对默认标签以及对
当前完成。 因此,只能强制某些类型的列表
匹配。

格式 如果这是为 说明 标签,它的值作为字符串显示
以上匹配完成列表。 序列`%d' 在这个字符串中将是
替换为这些匹配项的简短描述。 这个字符串也可以
包含以下序列以指定输出属性,如
提示序列的扩展部分 杂项(1):`%B',`%S',`%U',`%F',`%K'
和它们的小写对应物,以及`%{...%}'。 `%F',`%K'和`%{...%}'
以与提示扩展相同的形式获取参数。 注意序列`%G'
不可用; 论据`%{' 应该改用。

样式在每个标记对当前完成有效之前进行测试
测试了 说明 标签。 因此可以定义不同的格式字符串
不同类型的匹配。

还要注意,一些完成函数定义了额外的`%'-序列。 这些是
描述了使用它们的完成函数。

一些完成功能显示可以通过设置此自定义的消息
的风格 条未读消息 标签。 在这里,`%d' 被替换为由
完成功能。

最后,使用以下格式查找格式字符串 警告 标签,在没有时使用
完全可以生成匹配。 在这种情况下,`%d' 被替换为
预期以空格分隔的匹配项的描述。 序列
`%D' 替换为由换行符分隔的相同描述。

可以将 printf 样式的字段宽度说明符与 `%d'和类似的
转义序列。 这是由 格式 来自的内置命令
zsh/zutil 模块,见 zsh模块(1)。

水珠 这是由 _扩张 完成者。 如果它设置为“true”(默认值),
将尝试对先前替换产生的单词进行通配(参见
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 替代 样式)或该行中的原始字符串。

全球化 如果将其设置为“true”(默认值),则 _expand_alias 完成者和可绑定
命令将尝试扩展全局别名。

团队名字
补全系统可以对不同类型的比赛进行分组,这些比赛出现在
单独的列表。 此样式可用于为特定的组提供名称
标签。 例如,在命令位置完成系统生成的名称
内置和外部命令、别名、shell 函数和参数以及
保留字作为可能的补全。 拥有外部命令和外壳
单独列出的功能:

风格 ':completion:*:*:-command-:*:commands' \
团队名字 命令
风格 ':completion:*:*:-command-:*:functions' \
团队名字 功能

因此,具有相同标签的任何匹配项都将显示在同一组中。

如果给定的名称是空字符串,则匹配的标签名称将是
用作组名。 因此,要拥有所有不同类型的匹配项
单独显示,可以只设置:

风格 ':完成:*' 团队名字 ''

所有未定义组名的匹配项将放入名为
- 默认 - .

群序
这种风格是额外的 团队名字 style 指定显示顺序
由该风格定义的组(比较 标签顺序,这决定了哪个
完成出现在所有)。 命名的组按给定的顺序显示; 任何
其他组按完成函数定义的顺序显示。

例如,要拥有内置命令、shell 函数和外部命令的名称
命令在命令位置完成时按该顺序出现:

风格 ':完成:*:*:-命令-:*:*' 群序 \
内置函数 功能 命令

团体 UNIX 组的名称列表。 如果未设置,则组名取自
YP 数据库或文件`/ etc / group'.

如果设置为“true”,则不会列出给定上下文的匹配项,
尽管对匹配设置的任何描述 格式 样式将显示。
如果设置为`所有',甚至不会显示描述。

请注意,比赛仍将完成; 它们只是没有显示在列表中。
为了避免将匹配视为可能的完成, 标签顺序
样式可以修改如下所述。

为了 应完成的主机名称列表。 如果没有设置,主机名
取自文件`/ etc / hosts文件'.

主机端口
此样式由需要或接受主机名和网络端口的命令使用。
值中的字符串应采用`主持人:端口'。 有效端口是
由主机名的存在决定; 同一主机的多个端口可能
出现。

忽略线
这是针对每个对当前完成有效的标记进行测试的。 如果设置为
`true',任何已经在行上的词都不会被认为是
可能的完成。 如果设置为`当前', 光标所在的词将
不被视为可能的完成。 价值`当前显示' 类似
但仅当完成列表当前显示在屏幕上时才适用。
最后,如果样式设置为`other', 行上的所有单词,除了
当前的一个将被排除在可能的完成之外。

价值观`当前'和`当前显示' 有点像
接受精确 样式:仅完成缺少字符的字符串。

请注意,您几乎肯定不想将其设置为“true”或“other' 为一个
一般上下文,例如`:完成:*'。 这是因为它不允许
例如,即使有问题的命令也多次完成选项
不止一次接受该选项。

忽略父母
该样式由完成路径名的函数在没有标签的情况下进行测试,以便
判断是否忽略已经提到的目录名
当前词,或当前工作目录的名称。 该值必须包括
以下字符串中的一个或两个:

其路径已包含在单词上的任何目录的名称
行被忽略。 例如,当完成后 富/../, 目录
FOO 不会被视为有效的完成。

PWD 当前工作目录的名称不会补全; 因此,对于
例如,完成后 .. / 不会使用当前的名称
目录。

此外,该值可能包括以下一项或两项:

.. 仅当行上的单词包含
子串`.. /'.

目录
仅当目录名称为
完成,而不是在完成文件名时。

排除值的作用方式与 忽略模式 样式,
以便他们可以重新考虑 _忽略 完成者。

冗长的
如果设置,完成列表会更冗长,代价可能是减少
在完成速度。 如果将此样式设置为
'真实'。

忽略模式
模式列表; 任何与其中一种模式匹配的试验完成将是
排除在外。 这 _忽略 完成者可以出现在列表中
完成者恢复被忽略的匹配。 这是一个更可配置的版本
外壳参数 $忽略.

请注意 EXTENDED_GLOB 选项在执行完成期间设置
函数,所以字符`#',`~'和`^' 有特殊含义
图案。

这种风格被 _所有_匹配 完成者决定是否插入
无条件地列出所有匹配项,而不是将列表添加为另一个匹配项。

插入 ID
完成进程 ID 时,例如作为参数 等待 内置函数
命令的名称可以转换为适当的进程 ID。 一个问题
当输入的进程名称不唯一时出现。 默认情况下(或者如果此样式是
显式设置为`菜单') 该名称将立即转换为一组
可能的 ID,菜单完成将开始循环它们。

如果样式的值为`',shell 将等待用户输入
足以在将名称转换为 ID 之前使命令唯一; 尝试
在那之前完成将是不成功的。 如果该值是任何其他
字符串,当用户输入的字符串较长时将启动菜单完成
而不是相应 ID 的公共前缀。

插入标签
如果设置为`true',补全系统将插入一个TAB字符
(假设用于开始完成)而不是执行完成时
光标左侧没有非空白字符。 如果设置为
`false',即使在那里也会完成。

该值还可以包含子字符串`有待' 或`待定=VAL'。 在这
情况下,键入的字符将被插入而不是开始完成时
有未处理的输入待处理。 如果一个 VAL 给出,完成将不会完成
如果至少有那么多未处理的输入字符。 这是经常
将字符粘贴到终端时很有用。 但是请注意,它依赖于
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 $待定 特殊参数从 zsh/zle 模块设置正确
不保证在所有平台上。

此样式的默认值为“true”,除了在 变化的
内置命令,它是“false”。

插入明确
这是由 _比赛_近似 完成者。 这些完成者通常是
与菜单完成一起使用,因为输入的单词可能与
最后完成。 但是,如果此样式为“true”,则完成者将开始菜单
仅当它至少能找到没有明确的初始字符串时才完成
用户输入的原始字符串。

在的情况下 _近似 完成者,上下文中的完成者字段将
已经被设置为其中之一 正确的-NUM or 近似-NUM,在 Moku:Pro 上 NUM
接受的错误数。

在的情况下 _比赛 完成者,样式也可以设置为字符串
`模式'。 如果不匹配,则该行上的模式保持不变
毫不含糊地。

保留前缀
这种风格被 _扩张 完成者。 如果它是“真”,则完成者将
尝试保留包含波浪号或参数扩展的前缀。 因此,对于
例如,字符串`〜/ f*' 将扩展为 `〜/ foo' 代替
`/家/用户/富'。 如果样式设置为`'(默认),前缀将
只有在扩展词和
命令行中的原始单词。 任何其他值都强制前缀为
无条件扩张。

的行为 _扩张 当这种风格为“真”时会导致 _扩张 放弃
当具有恢复前缀的单个扩展与原始扩展相同时; 因此
可以调用任何剩余的完成者。

最后提示
这是一种更灵活的形式 ALWAYS_LAST_PROMPT 选项。 如果它是“真的”,
完成系统将尝试将光标返回到上一个命令行
显示完成列表后。 它针对所有有效的标签进行了测试
当前完成,然后 默认 标签。 光标将移回
如果此样式对于所有类型的匹配都是“true”,则为上一行。 请注意,与
ALWAYS_LAST_PROMPT 选项 this 独立于数字参数。

已知主机文件
此样式应包含用于搜索主机名的文件列表和(如果
使用-ip 样式已设置)格式与 ssh 兼容的 IP 地址 已知主机
文件。 如果没有设置,文件 /etc/ssh/ssh_known_hosts〜/.ssh/known_hosts
被使用。

名单 这种风格被 _历史_完整_字 可绑定命令。 如果设置为
“真”它没有效果。 如果设置为“false”,则不会列出匹配项。 这个
覆盖控制列表行为的选项的设置,特别是
自动列表. 上下文总是以`开头:完成:历史的话'.

列表颜色
如果 zsh/comlist 模块已加载,此样式可用于设置颜色
规格。 这种机制取代了使用 ZLS_颜色ZLS_COLOURS 颜色
中的“zsh/complist 模块”部分中描述的参数 zsh模块(1) 但是
语法是一样的。

如果此样式设置为 默认 标签,值中的字符串被视为
随处使用的规范。 如果为其他标签设置,则
规范仅用于标记描述的类型的匹配。 为了
这样效果最好, 团队名字 样式必须设置为空字符串。

除了为特定标签设置样式外,还可以使用组
明确指定的名称 团队名字 标签与`(团体)' 句法
允许的 ZLS_颜色ZLS_COLOURS 颜色 参数并简单地使用 默认
标签。

可以使用已经为 GNU 版本设置的任何颜色规范
ls 命令:

风格 ':完成:*:默认' 列表颜色 \
${(s.:.)LS_COLORS}

默认颜色与 GNU 相同 ls 命令,可以通过
将样式设置为空字符串(即 '').

列表目录优先
这是由文件完成使用的。 如果设置,则列出要完成的目录
与其他文件分开和在完成之前,无论标签顺序如何。
此外,标签 其它文件 用于代替 所有文件 剩下的
文件,以指示没有带有该标签的目录。

列表分组
如果此样式为“true”(默认值),则完成系统将尝试使
通过分组匹配,某些完成列表更紧凑。 例如,选项
对于具有相同描述的命令(显示在 详细 样式设置为
`true') 将显示为单个条目。 但是,菜单选择可用于
循环所有比赛。

列表包装
这是针对当前上下文中有效的每个标签以及 默认
标签。 如果设置为“true”,则相应的匹配项会出现在列表中,就像
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 列表_打包 选项被设置。 如果设置为“false”,它们将被列出
一般。

列表提示
如果此样式设置为 默认 标签,不适合的完成列表
屏幕可以滚动(请参阅 zsh/comlist 模块
zsh模块(1))。 该值,如果不是空字符串,将在每个
screenful 并且 shell 会提示按键; 如果样式设置为
空字符串,将使用默认提示。

该值可能包含转义序列:`%l' 或`%L',它将被替换为
显示的最后一行的行数和总行数; `%m' 或`%M',
显示的最后一场比赛的数量和比赛的总数; 和`%p'和
`%P',`置顶'当在列表的开头时,`半身裙/裤' 当最后和
位置显示为总长度的百分比,否则。 在每种情况下
带有大写字母的表单将被固定宽度的字符串替换,填充
右边有空格,而小写形式将被变量替换
宽度字符串。 与其他提示字符串一样,转义序列 `%S',`%s',`%B',
`%b',`%U',`%u' 用于进入和离开显示模式突出、粗体和
下划线和`%F',`%f',`%K',`%k' 用于改变前景背景
颜色,也可用,因为是形式`%{...%}' 用于封闭转义序列
显示为零(或,使用数字参数,其他)宽度。

删除此提示后的变量 列表提示 应该取消设置以进行删除
生效。

列表行优先
这种风格的测试方式与 列表包装 风格和决定
是否以行优先的方式列出匹配项,就像 LIST_ROWS_FIRST
选项被设置。

列表后缀
此样式由完成文件名的函数使用。 如果它是“真”,并且
对包含多个部分键入的路径名的字符串尝试完成
组件,将显示所有不明确的组件。 否则,完成停止在
第一个不明确的组件。

列表分隔符
此样式的值用于完成列表中将字符串分隔为
尽可能从描述中完成(例如,在完成选项时)。 它
默认为`--'(两个连字符)。

本地 这用于完成对应文件的 URL 的函数
可以直接从文件系统获得。 它的值应该包括三个
字符串:主机名、服务器默认网页的路径,以及
用户在其主页区域内放置网页所使用的目录名称。

例如:

风格 ':完成:*' 本地 祝酒 \
/var/http/公共/吐司 的public_html

完成后`http://toast/stuff/' 将在目录中查找文件
/var/http/public/吐司/东西, 而在`之后完成http://toast/~yousir/' 将要
在目录中查找文件 〜你先生/public_html.

邮件目录
如果设置,zsh 将假定可以在指定的目录中找到邮箱文件。
它默认为`〜/邮件'.

匹配原件
这是由 _比赛 完成者。 如果设置为 仅由, _比赛 将尝试
生成匹配而不插入`*' 在光标位置。 如果设置为任何
其他非空值,它将首先尝试生成匹配而不插入
`*',如果没有匹配到,它会再次尝试使用 `*'插入。 如果它
未设置或设置为空字符串,匹配将只与`*'
已插入。

匹配器
对于当前上下文中有效的每个标签,单独测试此样式。 它的
在任何匹配规范之前尝试值 匹配器列表 风格。 它
应采用“完成匹配控制”部分中描述的形式
zshcompwid(1). 有关这方面的示例,请参阅 标签顺序 的风格。

匹配器列表
此样式可以设置为要应用的匹配规范列表
到处。 匹配规范在“完成匹配”部分中描述
控制'在 zshcompwid(1). 补全系统会陆续尝试
对于每个选择的完成者。 例如,首先尝试简单的完成,如果
不生成匹配,不区分大小写的完成:

风格 ':完成:*' 匹配器列表 '' 'm:{a-zA-Z}={A-Za-z}'

默认情况下,每个规范都会替换前一个规范; 然而,如果一个
规范以 +,它被添加到现有列表中。 因此它是
可以在不重复的情况下创建越来越通用的规范:

风格 ':完成:*' 匹配器列表 \
'' '+m:{az}={AZ}' '+m:{AZ}={az}'

可以通过以下方式创建对特定完成者有效的匹配规范
使用上下文的第三个字段。 这仅适用于完成者
覆盖全局匹配器列表,在撰写本文时仅包括 _字首
_忽略. 例如,要使用完成者 _完成_字首 但允许
不区分大小写的完成仅与 _完成:

风格 ':完成:*' 完成者 _完成 _字首
风格 ':完成:*:完成:*:*:*' 匹配器列表 \
'' 'm:{a-zA-Z}={A-Za-z}'

用户定义的名称,如对 完成者 样式,可用。 这个
可以使用不同的匹配多次尝试相同的完成者
规格每次。 例如,在没有匹配的情况下尝试正常完成
规范,然后用不区分大小写的匹配正常完成,然后
更正,最后部分单词完成:

风格 ':完成:*' 完成者 \
_完成 _正确的 _完成:富
风格 ':完成:*:完成:*:*:*' 匹配器列表 \
'' 'm:{a-zA-Z}={A-Za-z}'
风格 ':完成:*:foo:*:*:*' 匹配器列表 \
'm:{a-zA-Z}={A-Za-z} r:|[-_./]=* r:|=*'

如果在任何上下文中未设置样式,则不会应用匹配规范。 还要注意
一些完成者如 _正确的_近似 不要使用火柴
完全没有规范,尽管这些完成者甚至只会被调用一次
如果 匹配器列表 包含多个元素。

在多个规范有用的地方,请注意 整个 完成已完成
对于每个元素 匹配器列表,这会迅速降低外壳的性能。
作为粗略的经验法则,一到三根琴弦将提供可接受的性能。
另一方面,将多个空格分隔的值放入同一个字符串中
对性能没有明显影响。

如果没有当前匹配器或它为空,则选项 NO_CASE_GLOB
效果,文件的匹配在任何情况下都是不区分大小写的。
但是,任何匹配器都必须明确指定不区分大小写的匹配,如果是
必需的。

最大误差
这是由 _近似_正确的 完成函数来确定
允许的最大错误数。 完成者将尝试生成完成
首先允许一个错误,然后是两个错误,依此类推,直到匹配或
找到匹配项或此样式给出的最大错误数已达到
到达。

如果此样式的值包含字符串`数字', 完成函数
将采用任何数字参数作为允许的最大错误数。 为了
例如,与

风格 ':完成:*:近似:::' 最大误差 2 数字

如果没有给出数字参数,但有一个数字参数,则允许出现两个错误
六个(如`电调6 TAB'),最多接受六个错误。 因此,价值为
`0 数字', 除非数字参数,否则不会尝试更正完成
给出。

如果该值包含字符串`非数字',完成者将 而不去 尝试
当给定数字参数时生成更正的完成,所以在这种情况下
给定的数字应大于零。 例如,`2 非数字' 指定
通常会执行带有两个错误的更正完成,但是如果
给出数字参数,将不会执行更正完成。

此样式的默认值为 `2 数字'.

最大匹配宽度
此样式用于确定所使用的显示宽度之间的权衡
用于匹配和用于描述的宽度,当 详细 风格在
影响。 该值给出了为匹配保留的显示列数。
默认值为屏幕宽度的一半。

当多个匹配项具有相同的描述时,这会产生最大的影响,因此
归为一组。 增加样式将允许对更多匹配项进行分组
一起; 减少它将使更多的描述可见。

菜单 如果在为当前定义的任何标签的上下文中这是“真”
将使用完成菜单完成。 特定标签的值将采用
优先于`默认' 标签。

如果以这种方式找到的值都不是“真”,但至少有一个被设置为
`汽车',shell 的行为就像 自动菜单 选项已设置。

如果其中一个值显式设置为“false”,则菜单完成将是
明确关闭,覆盖 菜单_完成 选项和其他设置。

在形式`是=NUM',其中`' 可以是任何“真”值(`',`true',
`on'和`1'),如果至少有菜单完成将打开 NUM 匹配。
在形式`是=长', 如果列表不适合,将打开菜单完成
屏幕上。 如果小部件通常仅在
列出完成,但在这种情况下可以使用值激活菜单完成
`是=长名单'(通常,值`选择=长列表' 后面描述的是更多
很有用,因为它提供了对滚动的控制。)

类似地,对于任何“false”值(如在“没有=10'),菜单完成将 而不去
如果有,则使用 NUM 或更多比赛。

此小部件的值还控制菜单选择,由
zsh/comlist 模块。 以下值可能会出现在旁边或代替
上面的值。

如果该值包含字符串`选择', 将开始菜单选择
无条件。

在形式`选择=NUM', 菜单选择只有在至少有
NUM 火柴。 如果多个标签的值提供一个数字,则最小的
号码被占用。

可以通过定义一个包含
字符串`不选'.

也可以仅在匹配列表不匹配时才开始菜单选择
使用值`适合屏幕选择=长'。 甚至开始菜单选择
如果当前小部件仅执行列表,则使用值 `选择=长列表'.

当有一定数量的菜单时打开菜单完成或菜单选择
火柴 or 匹配列表不适合屏幕,两者都是`是='和
`选择=' 可以给出两次,一次是数字,一次是 `' 或者
`长名单'.

最后,可以激活两种特殊的菜单选择模式。 这个单词
`互动' 值会导致在以下情况下立即进入交互模式
菜单选择开始; 见说明 zsh/comlist 模块
zsh模块(1) 对交互模式的描述。 包括字符串`搜索、'
对于增量搜索模式也是如此。 要选择向后增量搜索,
包括字符串`向后搜索'.

互斥体 如果设置,则给出 mutt 配置文件的位置。 它默认为
`〜/.muttrc'.

数字
这与 工作 标签。 如果它是“true”,shell 将完成工作
数字而不是作业命令文本的最短明确前缀。 如果
value 是一个数字,只有当工作中有那么多单词时才会使用工作编号
需要描述来解决歧义。 例如,如果值为
`1', 仅当所有作业的第一个单词都不同时才使用字符串
命令行。

旧清单
这是由 _旧列表 完成者。 如果设置为`时刻',然后是标准
执行列表的小部件将保留当前的匹配列表,但是它们
被生成; 这可以使用值显式关闭决不要',给
没有的行为 _旧列表 完成者。 如果样式未设置,或任何其他
值,则显示现有的完成列表(如果还没有);
否则,生成标准完成列表; 这是默认行为
of _旧列表. 但是,如果有一个旧列表并且此样式包含
生成列表的完成函数,那么旧列表甚至会被使用
如果它是由不列出的小部件生成的。

例如,假设您键入 ^Xc 使用 _正确_字 小部件,它生成
光标下单词的更正列表。 通常,键入 ^D
为命令行上的单词生成标准的补全列表,并显示
那。 和 _旧列表,它会改为显示已更正的列表
产生。

作为另一个例子,考虑 _比赛 完成者:与 插入明确 样式
设置为“true”它只插入一个公共前缀字符串,如果有的话。 然而,
这可能会删除原始模式的部分内容,以便进一步完成
产生比第一次尝试更多的匹配。 通过使用 _旧列表 完成者
并将此样式设置为 _比赛,第一个生成的匹配列表
尝试将再次使用。

老比赛
这是由 _所有_匹配 完成者决定是否是旧的匹配列表
如果存在,则应使用。 这是由“真”值之一或由
字符串`仅由'。 如果值为`仅由', _所有_匹配 只会使用旧列表
并且不会对当前生成的匹配列表产生任何影响。

如果设置了此样式,则调用该样式通常是不明智的 _所有_匹配 完成者
无条件。 一种可能的用途是用于这种风格或 完成者 样式
定义为 -e 选项 风格 使样式有条件。

旧菜单
这是由 _旧列表 完成者。 它控制菜单完成的行为方式
当已插入完成并且用户键入标准时
完成键如 TAB. 默认行为 _旧列表 那是菜单吗
完成总是继续现有的完成列表。 如果这种风格
设置为“false”,但是,如果旧列表是
由不同的完成命令生成; 这是没有的行为
_旧列表 完成者。

例如,假设您键入 ^Xc 生成更正列表和菜单
完成以一种通常的方式开始。 通常,或将此样式设置为
`false',输入 TAB 此时将开始尝试像现在一样完成这条线
出现。 和 _旧列表,而是继续在列表中循环
更正。

原版的
这是由 _近似_正确的 完成者决定是否原始
应添加字符串作为可能的补全。 通常,这仅在以下情况下执行
至少有两个可能的更正,但是如果将此样式设置为“true”,则
总是添加。 请注意,将使用完成者字段检查样式
上下文名称设置为 正确的-NUM or 近似-NUM,在 Moku:Pro 上 NUM 是的数量
被接受的错误。

包集
在完成 Debian ` 的参数时使用这种风格的dpkg' 程序。 它
包含对给定上下文的默认包集的覆盖。 例如,

风格 ':completion:*:complete:dpkg:option--status-1:*' \
包集 利用

导致可用的包,而不仅仅是已安装的包,完成
`的dpkg - 地位'.

完成颜色名称的函数使用这种风格与 颜色 标签。 这
value 应该是包含颜色名称的文件的路径名,格式为
X11 RGB.txt 文件。 如果未设置样式但此文件位于各种
它将用作默认位置的标准位置。

路径完成
这由文件名完成使用。 默认情况下,文件名完成检查所有
路径的组件,以查看是否有该组件的完成。 为了
例, /u/b/z 可以完成到 /usr/bin/zsh. 将此样式显式设置为
`false' 禁止路径组件的这种行为直到 / 光标前;
这会覆盖设置 接受精确目录.

即使样式设置为`false',仍然可以完成多条路径
通过设置选项 COMPLETE_IN_WORD 并将光标移回第一个
要完成的路径中的组件。 例如, /u/b/z 可以完成到
/usr/bin/zsh 如果光标在 /u.

松树目录
如果设置,则指定包含 PINE 邮箱文件的目录。 没有
默认,因为递归搜索这个目录对任何人来说都是不方便的
不使用 PINE。

港口 要完成的 Internet 服务名称(网络端口)列表。 如果没有设置,
服务名称取自文件`/ etc /服务'.

隐藏前缀
这用于某些共享公共前缀的完成,例如
命令选项以破折号开头。 如果它是“true”,则前缀不会是
显示在匹配列表中。

此样式的默认值为“false”。

需要前缀
此样式也与具有公共前缀的匹配项相关。 如果设置为
`true' 这个公共前缀必须由用户输入以生成匹配。

该样式适用于 选项, 信号, 工作, 功能参数
完成标签。

对于命令选项,这意味着初始`-',`+',或`--' 必须输入
在完成选项名称之前明确。

对于信号,初始`-' 在完成信号名称之前是必需的。

对于作业,初始`%' 在完成作业名称之前是必需的。

对于函数和参数名称,一个初始的`_' 或`.' 在函数之前是必需的
或以这些字符开头的参数名称将完成。

此样式的默认值为“false” function参数 完成,
否则为“真”。

保留前缀
完成路径名称时使用此样式。 它的值应该是一个模式
匹配单词的初始前缀以完成应保持不变
在所有情况下。 例如,在某些 Unices 上,初始`//' (双倍的
斜线)有特殊意义; 将此样式设置为字符串 `//' 将保留
它。 再举一个例子,将此样式设置为`?:/' 在 Cygwin 下将允许
`后完成一种:/...' 等等。

范围 这是由 _历史 完成者和 _历史_完整_字 可绑定的
命令来决定应该完成哪些单词。

如果是单个数字,则只有最后一个 N 历史上的文字将完成。

如果它是形式的范围`最大:', 最后 话将完成;
那么如果没有匹配项,则 那些将被尝试之前的话,所以
在。 当至少找到一个匹配项时,此过程停止,或者 最大
已经尝试过了。

默认是一次完成历史记录中的所有单词。

递归文件
如果设置了此样式,则其值为要测试的模式数组
`$密码/':注意尾部斜杠,它允许模式中的目录
通过在两侧包含斜线来明确分隔。 如果是普通文件
完成失败并且命令行上的单词还没有目录
部分为其名称,使用与完成相同的标签检索样式
刚刚尝试,然后测试的元素 $密码/ 反过来。 如果一个匹配,
然后 shell 通过在命令行上添加单词来重新尝试完成
随着每个目录的扩展 **/*(/) 反过来。 通常的元素
样式将被设置为限制当前目录下的目录数
到一个可管理的数字,例如`*/.git/*'.

例如,

风格 ':完成:*' 递归文件 '*/zsh/*'

如果当前目录是 /home/pws/zsh/源, 然后 兹勒_trTAB 可以完成到
zle/zle_tricky.c.

定期
这种风格被 _expand_alias 完成者和可绑定命令。 如果设置为
`true'(默认),常规别名将被扩展,但仅在命令中
位置。 如果设置为“false”,则永远不会扩展常规别名。 如果它
设置为`时刻',即使不在命令中,常规别名也会被扩展
位置。

重新哈希 如果在完成外部命令时设置此项,则内部列表(哈希)
命令将通过发出 重新哈希 命令。 有一个
对此的速度损失只有当目录在
该路径的文件访问速度较慢。

远程访问
如果设置为‘false’,某些命令将被阻止上网
连接以检索远程信息。 这包括完成
CVS 命令。

并不总是可以知道连接是否实际上是到远程站点,因此
有些可能会被不必要地阻止。

删除所有重复项
这个 _历史_完整_字 可绑定命令和 _历史 完成者使用它来
决定是否应该删除所有重复的匹配项,而不仅仅是连续的匹配项
重复。

选择提示
如果这是为 默认 标签,它的值将在菜单中显示
选择(见 菜单 上面的样式)当完成列表不适合
画面整体。 与逃逸相同 列表提示 风格被理解,
除了数字是指标记所在的匹配或行。 默认
当值为空字符串时使用提示。

选择滚动
这种风格是经过测试的 默认 标记并确定完成列表的方式
在菜单选择期间滚动(请参阅 菜单 样式如上)完成时
列表不适合整个屏幕。 如果值为`0'(零),列表
被半屏滚动; 如果是正整数,则滚动列表
按给定的行数; 如果是负数,则列表滚动
screenful 减去给定行数的绝对值。 默认为
按单行滚动。

分开的部分
这种风格与 指南 在完成手册页的名称时标记。 如果
它是“true”,使用标签名称分别添加不同部分的条目
形式`手册。X', 在哪里 X 是节号。 当。。。的时候 团队名字 样式
也有效,来自不同部分的页面将分别显示。 这个
样式也与 完成单词时的风格
dict 命令。 它允许添加来自不同词典数据库的单词
分别地。 此样式的默认值为“false”。

显示歧义
如果 zsh/comlist 模块已加载,此样式可用于突出显示第一个
完成列表中的模糊字符。 该值是一个颜色指示
比如那些支持的 列表颜色 style 或者,值为“true”,一个
默认选择下划线。 突出显示仅在以下情况下应用
完成显示字符串对应于实际匹配。

显示完成者
每当尝试新的完成者时都会进行测试。 如果为“true”,则完成系统
在列表区域中输出进度消息,显示正在完成的任务
试过了。 当找到完成时,该消息将被任何输出覆盖
并在完成后移除。

单一忽略
这是由 _忽略 当只有一场比赛时完成。 如果它的价值
是`显示',将显示单个匹配项但不插入。 如果值为
`菜单',然后将单个匹配项和原始字符串都添加为匹配项和
菜单完成已启动,可以轻松选择其中任何一个。

分类 许多完成小部件调用 _描述 在某个时刻决定是否
匹配项按排序或未排序添加(通常间接通过 _通缉 or _请求).
可以将此样式显式设置为通常的“true”或“false”值之一作为
覆盖。 如果没有为上下文设置,调用的标准行为
使用小部件。

样式首先针对包括标签在内的完整上下文进行测试,如果
无法针对没有标记的上下文生成值。

如果调用小部件明确请求未排序的匹配,这通常是
荣幸。 但是,命令的默认(未排序)完成行为
可以通过将样式设置为“true”来覆盖历史记录。

_扩张 完成者,如果它设置为“真”,则生成的扩展将
总是被排序。 如果设置为`菜单',则扩展仅在以下情况下排序
它们作为单个字符串提供,但不在包含所有可能的字符串中
扩展。

特殊目录
通常,完成代码不会产生目录名`.'和`..' 作为
可能的完成。 如果此样式设置为“true”,它将同时添加“.'和
`..' 尽可能完成; 如果它设置为`..',只有`..' 将被添加。

下面的例子集 特殊目录 到`..' 当前前缀为空时,
是单个`.',或仅包含以 ` 开头的路径.. /'。 否则
值为“假”。

风格 -e ':完成:*' 特殊目录 \
'[[ $前缀 = (../)#(|.|..) ]] && 回复=(..)'

挤压斜线
如果设置为“true”,文件名路径中的斜杠序列(例如
`富 // 酒吧') 将被视为单斜杠。 这是 UNIX 的通常行为
路径。 但是,默认情况下,文件完成功能的行为就像有一个
`*' 在斜线之间。

停止 如果设置为“true”,则 _历史_完整_字 可绑定命令将停止一次
到达历史的开始或结束。 调用 _历史_完整_字
然后绕到历史的另一端。 如果此样式设置为
`false'(默认), _历史_完整_字 将像在菜单中一样立即循环
完成。

条评论
如果设置为“true”,则此样式会导致从
完成匹配。 目前仅在填写电子邮件地址时使用
它从地址中删除任何显示名称,将它们简化为简单的
用户@主机 形式。

仅 subst-globs
这是由 _扩张 完成者。 如果设置为“true”,则扩展将
仅当它是由 globbing 导致时才使用; 因此,如果扩张是由
使用的 替代 下面描述的风格,但这些没有进一步改变
globbing,扩展将被拒绝。

此样式的默认值为“false”。

替代
此布尔样式控制是否 _扩张 完成者将首先尝试扩展
字符串中的所有替换(例如`$(...)'和`${...}“)。

默认值为“真”。

后缀 这是由 _扩张 如果单词以波浪号开头或包含
参数扩展。 如果它被设置为“true”,这个词只会被扩展
没有后缀,即如果它是类似`〜富' 或`$ foo' 而不是
`~富/' 或`$foo/酒吧',除非后缀本身包含符合条件的字符
扩张。 此样式的默认值为“true”。

标签顺序
这提供了一种对特定标签中的可用标签进行排序的机制。
将使用上下文。

样式的值是一组以空格分隔的标签列表。 中的标签
将同时尝试每个值; 如果未找到匹配项,则下一个值是
用过的。 (见 文件模式 此行为的例外样式。)

例如:

风格 ':completion:*:complete:-command-:*:*' 标签顺序 \
'命令 职能'

指定在命令位置完成首先提供外部命令和
壳函数。 如果没有找到完成,将尝试剩余的标签。

除了标签名称,值中的每个字符串可能采用以下之一
形式:

- 如果任何值仅包含一个连字符,则 仅由 中指定的标签
生成其他值。 通常所有没有明确选择的标签都是
如果指定的标签无法生成任何匹配项,则最后尝试。 这意味着
仅由一个连字符组成的单个值会关闭完成。

! 标签...
以感叹号开头的字符串指定标记的名称
而不去 要使用的。 效果与所有其他可能的标签相同
上下文已经列出。

行李牌:标签 ...
在这里, 行李牌 是标准标签之一,并且 标签 是一个任意名称。
匹配正常生成,但名称 标签 在上下文中使用
而不是 行李牌. 这在以开头的单词中没有用 !.

如果 标签 以连字符开头, 行李牌 被添加到 标签 形成
用于查找的名称。 这可以用来制作完成系统
多次尝试某个标签,提供不同的样式设置
每次尝试; 请参阅下面的示例。

行李牌:标签:描述
和以前一样,但是 描述 将取代`%d' 的值 格式
样式而不是完成提供的默认描述
功能。 描述中的空格必须用反斜杠引用。 一种
`%d'出现在 描述 被替换为给出的描述
完成功能。

在上面的任何形式中,标签可能是一个图案或多个图案
`{pat1,拍2...}'。 在这种情况下,将使用所有匹配的标签,除了任何给定的
明确地在同一个字符串中。

这些功能的一种用途是多次尝试一个标签,设置其他样式
每次尝试都不同,但仍然使用所有其他标签而不必
重复一遍。 例如,在命令中完成函数名称
位置忽略所有以下划线开头的完成函数
尝试完成时间:

风格 ':完成:*:*:-命令-:*:*' 标签顺序 \
'功能:-非补偿 *' 功能
风格 ':completion:*:functions-non-comp' \
忽略模式 '_*'

第一次尝试时,将提供所有标签,但 功能 标签将是
取而代之 功能非补偿。 该 忽略模式 此标签的样式设置为
排除以下划线开头的函数。 如果没有匹配项,则第二个
的价值 标签顺序 使用样式,使用默认完成功能
标签,这次大概包括所有函数名称。

一个标签的匹配可以分成不同的组。 例如:

风格 ':完成:*' 标签顺序 \
'选项:-长:长\ 选项
选项:-短:短\ 选项
选项:-单字母:单\ 信\ 选项'
风格 ':completion:*:options-long' \
忽略模式 '[-+](|-|[^-]*)'
风格 ':completion:*:options-short' \
忽略模式 '--*' '[-+]?
风格 ':completion:*:options-single-letter' \
忽略模式 '???*'

随着 组名 样式集,选项以`开头--', 开头的选项
单个`-' 或`+' 但包含多个字符和单字母选项
将显示在具有不同描述的不同组中。

模式的另一种用途是一个接一个地尝试多个匹配规范。
这个 匹配器列表 style 提供了类似的东西,但它在早期就已经过测试
完成系统,因此不能为单个命令设置,也不能为更具体的命令设置
上下文。 这是在没有任何匹配规范的情况下尝试正常完成的方法
并且,如果没有生成匹配项,请使用不区分大小写的匹配重试,
将效果限制为命令的参数 FOO:

风格 ':完成:*:*:foo:*:*' 标签顺序 '*' '*:-案件'
风格 ':完成:* -案例' 匹配器 'm:{az}={AZ}'

首先,完成后提供的所有标签 FOO 尝试使用正常
标签名称。 如果没有产生匹配,则第二个值 标签顺序 用来,
它再次尝试所有标签,但这次每个标签都有 -案件 附加到其
用于查找样式的名称。 因此,这一次的价值 匹配器 来自的风格
第二次调用 风格 在示例中用于完成
不区分大小写。

可以使用 -e 的选项 风格 指定的内置命令
使用特定标签的条件。 例如:

风格 -e '*:-命令-:*' 标签顺序 '
if [[ -n $前缀$后缀 ]]; 然后
回复=( )
其他
回复=( - )
菲'

仅当目前键入的字符串为
不是空的。 这是使用 字首 特殊参数; 请参阅 zshcompwid
完成小部件内部特殊的参数描述。 环境
一个回复 空数组提供了一次尝试所有标签的默认行为;
将其设置为仅包含连字符的数组将禁用所有标签的使用,并且
因此所有的完成。

如果不 标签顺序 已经为上下文定义了样式,字符串`(|*-) 参数-*
(|*-)选项-* 价值观'和`选项' 加上完成提供的所有标签
函数将用于提供导致参数的合理默认行为
(无论是普通的命令参数还是选项的参数)要在之前完成
大多数命令的选项名称。

网址 这与 网址 通过完成 URL 的函数标记。

如果该值由多个字符串组成,或者如果唯一的字符串未命名
一个文件或目录,字符串用作 URL 来完成。

如果该值仅包含一个字符串,即普通文件的名称,则 URL
取自该文件(其中 URL 可以用空格或
换行符)。

最后,如果值中的唯一字符串命名目录,则目录层次结构
以这个目录为根给出了补全。 顶级目录应该是
文件访问方法,例如`HTTP',`FTP',`书签' 等等。 在很多情况下
下一级目录将是文件名。 目录层次结构可以
根据需要尽可能深入。

例如,

风格 ':完成:*' 网址 〜/ .urls
MKDIR -p 〜/.urls/ftp/ftp.zsh.org/pub

允许完成 URL 的所有组件 ftp://ftp.zsh.org/pub after
合适的命令,例如`网景' 或`猞猁'。 但是请注意,访问方法
和文件是分开完成的,所以如果 为了 样式设置hosts即可
完成时不参考 网址 的风格。

见函数中的描述 _网址 了解更多信息(例如`更多
$^fpath/_urls(N)“)。

使用缓存
如果设置了这个,完成缓存层会为任何完成而激活
使用它(通过 _store_cache, _retrieve_cache_缓存_无效 职能)。 这
包含缓存文件的目录可以用 缓存路径 的风格。

使用-compctl
如果此样式设置为字符串 而不去 等于 false, 0, 没有折扣, 完成
系统可以使用任何定义的完成规范 压缩 内建的
命令。 如果样式未设置,则仅当 zsh/compctl 模块是
加载。 该字符串还可以包含子字符串`第一' 使用补全
用`定义压缩 -T',以及子串`默认' 使用完成
用`定义压缩 -D'.

请注意,这只是为了平滑从 压缩 新的
完成系统,将来可能会消失。

另请注意,来自的定义 压缩 只有在没有的情况下才会使用
相关命令的特定完成功能。 例如,如果有
一个函数 _foo 完成命令的参数 FOO, 压缩 永远不会
FOO。 但是,那 压缩 版本将被尝试,如果 FOO 仅使用
默认完成。

使用-ip 默认情况下,函数 _主机 完成主机名从剥离 IP 地址
从主机数据库(如 NIS 和 ssh 文件)读取的条目。 如果这种风格是
`true',对应的IP地址也可以填写。 这种风格不
在任何上下文中使用 为了 风格已定; 还要注意它必须在之前设置
生成主机名缓存(通常是第一次完成尝试)。

用户 这可以设置为要完成的用户名列表。 如果没有全部设置
用户名将完成。 请注意,如果仅设置了该用户列表
完成; 这是因为在某些系统上查询所有用户可以采取
令人望而却步的时间。

用户-主机
这种风格的值应该是这样的形式`用户@主持人' 或`用户:主持人'。 这是
用于需要用户名和主机名对的命令。 这些命令将
使用此样式的完整用户名(仅限),并将限制后续主机名
完成与该用户配对的主机的样式值之一。

可以对允许远程登录的命令集的值进行分组,
登陆SSH,通过使用 我的账户 标签。 同样,集合的值
的命令通常是指其他人的帐户,例如
手指, 可以使用 其他账户 标签。 更多矛盾的命令
可以使用 账户 标签。

用户-主机-端口
喜欢 用户-主机 但用于像这样的命令 远程登录 并包含字符串
形式`用户@主持人:端口'.

详细
如果设置,默认情况下,完成列表会更详细。 特别是
如果此样式为“true”,则许多命令会显示选项的说明。

这是由 _列表 完成器,防止插入完成
直到当线路没有改变时第二次完成尝试。 正常的方式
找出该行是否已更改是在以下行之间比较其全部内容
两次。 如果此样式为“true”,则仅执行比较
在当前词上。 因此,如果在另一个单词上执行完成
相同的内容,完成不会延迟。

CONTROL 职能


初始化脚本 组合 重新定义所有执行完成的小部件
调用提供的小部件函数 _main_complete. 此函数充当包装器调用
生成匹配项的所谓“完成程序”功能。 如果 _main_complete 叫做
带参数,这些被视为要在
给定的命令。 如果没有给出参数,则要尝试的函数集取自
完成者 风格。 例如,如果没有,则使用正常完成和更正
生成任何匹配项:

风格 ':完成:*' 完成者 _完成 _正确的

打电话后 组合. 此样式的默认值为 `_完成 _忽略', IE
通常只尝试普通补全,首先是效果 忽略模式
风格,然后没有它。 这 _main_complete 函数使用返回状态
完成器函数来决定是否应该调用其他完成器。 如果退货状态
为零,没有尝试其他完成者,并且 _main_complete 函数返回。

如果第一个参数为 _main_complete 是单个连字符,参数不会是
作为完成者的名字。 相反,第二个参数给出了一个在
完成者 上下文的字段和其他参数给出命令名称和参数
调用以生成匹配项。

发行版中包含以下完成功能,尽管用户可能会
自己写。 请注意,在上下文中,前导下划线被剥离,例如
基本完成在上下文中执行`:完成::完成:...'.

_所有_匹配
此完成器可用于添加由所有其他匹配项组成的字符串。 作为它
影响后来的完成者,它必须作为列表中的第一个完成者出现。 这
所有匹配项的列表受 避免完成者老比赛 风格
如上所述。

使用 _通用的 下面描述的函数来绑定 _所有_匹配
到它自己的击键,例如:

le -C 全场比赛 完整词 _通用的
绑定键 '^Xa' 全场比赛
风格 ':completion:all-matches:*' 老比赛 仅由
风格 ':completion:all-matches::::' 完成者 _所有_匹配

请注意,这本身不会生成完成:首先使用任何
生成完成列表的标准方法,然后使用 ^Xa 显示所有
火柴。 也可以在列表中添加一个标准的完成者
要求直接插入所有匹配项的列表:

风格 ':completion:all-matches::::' 完成者 \
_所有_匹配 _完成
风格 ':completion:all-matches:*' true

在这种情况下 老比赛 不应设置样式。

_近似
这类似于基本的 _完成 完成者但允许完成
进行更正。 最大错误数可以由
最大误差 风格; 见近似匹配的描述 zshexpn(1) 对于如何
错误被计算在内。 通常这个完成者只会在正常之后被尝试
_完成 完成者:

风格 ':完成:*' 完成者 _完成 _近似

当且仅当正常完成没有产生时,这将给出更正完成
可能的完成。 当找到更正的完成时,完成者将
通常开始菜单完成允许您循环浏览这些字符串。

这个完成者使用标签 更正原版的 当产生可能的
更正和原始字符串。 这 格式 前者的样式可能包含
附加序列`%e'和`%o' 将被替换为
分别接受错误以生成更正和原始字符串。

完成者逐步增加允许的错误数量,直至达到限制
最大误差 样式,因此如果发现一个错误完成,则没有
将显示有两个错误的完成,依此类推。 它修改了完成者
上下文中的名称以指示正在尝试的错误数量:在第一次尝试时
完成者字段包含`大约-1',在第二次尝试时`大约-2',
等等。

在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 _近似 从另一个函数调用,接受的错误数
可以通过 -a 选项。 参数的格式与
最大误差 风格,都在一个字符串中。

请注意,这个完成者(和 _正确的 下面提到的完成者)可以相当
调用成本高昂,尤其是在允许出现大量错误的情况下。 单程
避免这种情况是设置 完成者 样式使用 -e 选项 zstyle 所以
某些完成者仅在第二次尝试完成时才使用
相同的字符串,例如:

风格 -e ':完成:*' 完成者 '
if [[ $_last_try != “$HISTNO$BUFFER$CURSOR” ]]; 然后
_last_try="$HISTNO$BUFFER$CURSOR"
回复=(_完成 _比赛 _字首)
其他
回复=(_忽略 _正确的 _近似)
菲'

这使用 希斯诺 参数和 缓冲游标 特殊参数
可在 zle 和完成小部件内使用以查明命令行
自上次尝试完成以来没有改变。 只有这样
_忽略, _正确的_近似 完成者称为。

_完成
这个完成器以上下文相关的方式生成所有可能的完成,
即使用定义的设置 定义 上面解释的功能和
所有特殊参数的当前设置。 这给出了正常的完成
行为。

要完成命令的参数, _完成 使用效用函数 _普通的,
反过来,它负责找到特定的功能; 它被描述
以下。 表单的各种上下文 -上下文- 是专门处理的。 这些是
上面提到的所有可能的论点 #compdef 标签。

在尝试为特定上下文查找函数之前, _完成 检查是否
参数`上下文' 已设置。 设置`上下文' 允许通常的完成
调度被覆盖,这在诸如使用的函数之类的地方很有用
变化的 用于输入。 如果设置为数组,则元素被视为
将使用标签` 完成的可能匹配价值观' 和说明
`折扣值'。 如果它设置为关联数组,则将键用作可能的
完成和值(如果非空)用作匹配的描述。
如果`上下文' 被设置为一个包含冒号的字符串,它应该是这样的形式
`行李牌:描述:行动'。 在这种情况下 行李牌描述 给标签和描述
使用和 行动 指示应在接受的形式之一中完成的内容
_参数 效用函数如下所述。

最后,如果`上下文' 设置为没有冒号的字符串,该值被视为
要使用的上下文的名称和为该上下文定义的函数将是
叫。 为此,有一个名为的特殊上下文 -命令行-
完成整个命令行(命令及其参数)。 这不被使用
完成系统本身,但在显式调用时仍会处理。

_正确的
为当前单词生成更正,但不生成补全; 这类似于
_近似 但不允许在光标处有任何数量的额外字符
那个完成者可以。 效果类似于拼写检查。 它基于
_近似,但上下文名称中的完成者字段是 正确.

例如,与:

风格 ':完成::::::' 完成者 \
_完成 _正确的 _近似
风格 ':完成:*:正确:::' 最大误差 2 非数字
风格 ':完成:*:近似:::' 最大误差 3 数字

更正最多接受两个错误。 如果给出一个数字参数,
将不会执行更正,但将执行更正完成
接受由数字参数给出的尽可能多的错误。 没有数字
论据,将尝试首先更正,然后更正完成,与
第一个接受两个错误,第二个接受三个错误。

在规划婴儿食品行业的工艺要求时,安全性和可靠性是工艺设计中最重要的方面。 _正确的 作为函数调用,可以给出接受的错误数
-a 选项。 参数的形式与 a 的值相同 接受
风格,都在一个字符串中。

此完成函数旨在在没有 _近似 完成者
或者,如示例中所示,就在它之前。 之后使用它 _近似 完成者
没用,因为 _近似 至少会生成更正的字符串
由...生成 _正确的 完成者——可能还有更多。

_扩张
这个完成函数并没有真正执行完成,而是检查是否
命令行上的单词可以扩展,如果是,则给出
详细控制如何进行这种扩展。 要做到这一点,
完成系统需要调用 完整词,不 展开或完成
(默认绑定 TAB),否则字符串将被扩展
shell 在完成系统启动之前的内部机制。 还要注意这个
应在完成之前调用 _完成 补全功能。

生成扩展时使用的标签是 全面扩张 对于字符串
包含所有可能的扩展, 扩展 添加可能的扩展时
作为单场比赛和 原版的 从行中添加原始字符串时。 这
这些字符串的生成顺序(如果有的话)可以由
群序标签顺序 样式,像往常一样。

格式字符串为 全面扩张 和为 扩展 可能包含序列
`%o' 这将被行中的原始字符串替换。

要尝试的扩展类型由 替代, 水珠
仅 subst-globs 样式。

也可以调用 _扩张 作为一个函数,在这种情况下,不同的
可以使用以下选项选择模式: -s HPMC胶囊 替代, -g HPMC胶囊 水珠-o HPMC胶囊
仅 subst-globs.

_expand_alias
如果光标所在的单词是别名,则展开并没有其他完成者
被称为。 要扩展的别名类型可以通过控制
风格 定期, 全球化禁用.

此函数也是一个可绑定命令,请参阅“可绑定命令”部分
联络一位教师

_扩展名
如果光标跟随字符串`*.', 文件扩展名完成。 这
扩展名取自当前目录或指定目录中的文件
当前单词的开头。 对于完全匹配,完成继续允许
其他完成者如 _扩张 以扩展模式。 标准 添加空间
隐藏前缀 样式被观察。

_历史
来自 shell 命令历史的完整单词。 这个完成者可以被控制
删除所有重复项分类 样式 _历史_完整_字 可绑定的
命令,请参阅下面的“可绑定命令”部分和“完成”部分
系统配置”如上。

_忽略
这个 忽略模式 样式可以设置为比较的模式列表
反对可能的完成; 匹配的被删除。 有了这个完成者
比赛可以恢复,好像没有 忽略模式 风格已定。 完成者
实际上生成自己的匹配列表; 调用哪些完成者是
以同样的方式确定 _字首 完成者。 这 单一忽略 样式
也可以如上所述使用。

_列表 这个完成器允许将匹配的插入延迟到完成
尝试了第二次,而线路上的单词没有改变。 在第一
尝试,只会显示匹配列表。 受款式影响
流程条件,请参阅上面的“完成系统配置”部分。

_比赛 此完成程序旨在在 _完成 完成者。 它的行为
类似,但命令行上的字符串可能是要匹配的模式
试验完成。 这给出了效果 GLOB_COMPLETE 选项。

通常完成将通过从行中获取模式来执行,
插入一个`*' 在光标位置并将结果模式与
生成的可能完成。 这可以用 匹配原件 样式
如上所述。

生成的匹配将在菜单完成中提供,除非
插入明确 样式设置为“真”; 其他见上面的描述
这种风格的选项。

请注意,全局定义的匹配器规范或完成使用的匹配器规范
函数(样式 匹配器列表匹配器) 将不会被使用。

_菜单 这个完成器被编写为简单的示例函数来展示菜单完成
可以在shell代码中启用。 但是,它具有禁用菜单的显着效果
可以用于的选择 _通用的 基于小部件。 它应该用作
列表中的第一个完成者。 请注意,这与设置无关
菜单_完成 选项并且不适用于其他菜单完成小部件,例如
as 反向菜单完成接受并完成菜单.

_旧列表
这个完成器控制标准完成小部件在有一个
可能由特殊完井生成的现有完井清单
(即单独绑定的完成命令)。 它允许普通完成
继续使用由此生成的完成列表的键,而不是
生成一个新的普通上下文完成列表。 它应该出现在
生成匹配项的任何小部件之前的完成者列表。 它使用两个
样式: 旧清单旧菜单, 见“完成系统配置”一节
以上。

_字首
这个补全符可以用来尝试用后缀补全(在
游标)忽略。 换句话说,后缀不会被认为是
这个词来完成。 效果类似于 扩展或完成前缀
命令。

这个 完成者 样式用于决定要调用哪些其他完成者
生成匹配。 如果未设置此样式,则为
使用当前上下文——当然,除了 _字首 完成者本身。
此外,如果此完成者在完成者列表中出现不止一次
只有上次调用尚未尝试过的那些完成者 _字首
叫。

例如,考虑这个全局 完成者 样式:

风格 ':完成:*' 完成者 \
_完成 _字首 _正确的 _前缀:foo

在这里, _字首 completer 尝试正常完成但忽略后缀。 如果
不会生成任何匹配项,对 _正确的
完成之后, _字首 将被第二次调用,现在只尝试
忽略后缀的更正。 在第二次调用时,完成部分
上下文显示为`FOO'.

使用 _字首 作为最后的手段,只在正常完成时尝试
调用:

风格 ':完成:*' 完成者 _完成 ... _字首
风格 ':完成::前缀:*' 完成者 _完成

这个 添加空间 风格也受到尊重。 如果它被设置为“真”那么 _字首
在生成的匹配项(如果有)和后缀之间插入一个空格。

请注意,此完成程序仅在以下情况下有用 COMPLETE_IN_WORD 选项已设置;
否则,光标将移动到当前单词的末尾
完成代码被调用,因此将没有后缀。

_用户_展开
这个完成者的行为类似于 _扩张 完成者而是执行
用户定义的扩展。 款式 添加空间分类 特定于的样式
_扩张 完成者可用于 _用户_展开 除了处理的其他样式
更普遍的是通过完成系统。 标签 全面扩张 也可以。

扩展取决于数组样式 用户扩展 为当前定义
语境; 请记住,完成者的上下文不如
上下文完成,因为尚未确定完整的上下文。 要点
该数组可能具有以下形式之一:
$哈希

哈希 是关联数组的名称。 注意这不是一个完整的参数
表达式,只是一个 $,适当引用以防止立即扩展,
后跟关联数组的名称。 如果试扩词
匹配一个键 哈希,由此产生的扩展是相应的值。
_FUNC

_FUNC 是一个 shell 函数的名字,它的名字必须以 _ 但是
对完成系统没有其他特殊性。 该函数被调用
审判词作为论据。 如果要扩展单词,则函数
应该设置数组 一个回复 到扩展列表。 可选地,它可以设置
回复 将用作描述集合的词
扩展。 函数的返回状态无关紧要。

可绑定 指令


除了提供的依赖于上下文的完成之外,预计这些完成
一种直观明显的方式,有一些小部件实现了特殊的行为
可以单独绑定到键。 以下是这些及其默认值的列表
绑定。

_bash_完成
此功能由两个小部件使用, _bash_完整单词_bash_list-选择.
它的存在是为了提供与 bash 中完成绑定的兼容性。 最后
绑定的字符决定了完成的内容:`!',命令名称; `$',
环境变量; `@',主机名; `/',文件名; `~' 用户名。 在 bash 中,
以`开头的绑定\e' 表示完成,并以 ` 开头^X' 列出选项。
由于其中一些绑定与标准 zsh 绑定冲突,因此只有 `\e~'和`^X~'
默认绑定。 要添加其余部分,应将以下内容添加到 .zshrc
after 组合 已经运行:

HPMC胶囊 in '! '$' '@' '/' '~'; do
绑定键 "\e$key" _bash_完整单词
绑定键 “^X$键” _bash_list-选择
完成

这包括`的绑定~' 以防他们已经绑定到某些东西
别的; 完成代码不会覆盖用户绑定。

_正确的文件名 (^XC)
更正光标位置处的文件名路径。 允许最多六个错误
名称。 也可以使用参数调用以更正文件名路径,
独立于zle; 更正被打印在标准输出上。

_正确_字 (^Xc)
使用通常的上下文完成对当前参数进行更正
作为可能的选择。 这存储字符串`正确的词' 在里面 function 现场
上下文名称,然后调用 _正确的 完成者。

_expand_alias (^Xa)
此函数可用作完成器和可绑定命令。 它扩展了
如果是别名,则光标所在的单词。 扩展别名的类型可以是
用样式控制 定期, 全球化禁用.

当用作可绑定命令时,有一个附加功能可以
通过设置选择 完成 样式为“真”。 在这种情况下,如果单词不是
别名的名称, _expand_alias 尝试将单词补全为完整的别名
无需扩展它。 它将光标直接留在完成的单词之后
那个调用 _expand_alias 将再次扩展现在完整的别名。

_expand_word (^氙)
对当前词进行扩展:相当于标准 展开词
命令,但使用 _扩张 完成者。 在调用它之前, function 现场
上下文设置为`展开词'.

_通用的
此函数未定义为小部件,默认情况下未绑定。 然而,它可以
用于定义一个小部件,然后将小部件的名称存储在
function 上下文的字段并调用完成系统。 这允许自定义
具有自己的一组样式设置的完成小部件可以轻松定义。 为了
例如,定义一个执行正常完成和启动菜单的小部件
选择:

le -C FOO 完整词 _通用的
绑定键 '……' FOO
风格 ':completion:foo:*' 菜单 选择=1

特别要注意的是 完成者 可以为上下文设置样式,以便
更改用于生成可能匹配项的函数集。 如果 _通用的 is
用参数调用,这些参数被传递到 _main_complete 作为列表
完成者代替那些由 完成者 的风格。

_历史_完整_字 (\e/)
来自 shell 命令历史的完整单词。 这使用 名单,
删除所有重复项, 分类停止 样式。

_最近的_文件 (^X米)
补全最近修改的文件名,匹配上的模式
命令行(可能为空)。 如果给定一个数字参数 N, 完成 Nth
最近修改的文件。 请注意,完成(如果有)始终是唯一的。

_下一个_标签 (^Xn)
此命令更改用于下一个标签的匹配集,或
标签,或者由 标签顺序 样式或默认设置; 这些比赛
否则将无法使用。 命令循环的连续调用
通过所有可能的标签集。

_read_comp (^X^R)
提示用户输入一个字符串,并使用它来完成当前
单词。 字符串有两种可能。 首先,它可以是一组词
开始`_',例如`_FILES -/',在这种情况下,函数具有任何
将调用参数以生成完成。 明确的部分
函数名会自动补全(正常补全不可用
此时)直到输入一个空格。

其次,任何其他字符串都将作为一组参数传递给 组合 并应
因此是一个指定应该完成什么的表达式。

读取字符串时,可以使用一组非常有限的编辑命令:
`'和`^H' 删除最后一个字符; `^U' 删除该行,然后 `^C'和`^G'
中止函数,而`RET' 接受完成。 注意字符串被使用
逐字作为命令行,因此必须按照标准引用参数
壳规则。

读取字符串后,下一次调用 _read_comp 将使用现有的
字符串而不是读取一个新的。 要强制读取新字符串,请调用
_read_comp 带有数字参数。

_complete_debug (^X?)
此小部件执行普通完成,但在临时文件中捕获跟踪
由完成系统执行的 shell 命令。 每次完成尝试
得到自己的文件。 查看每个文件的命令被推送到编辑器上
缓冲堆栈。

_完整_帮助 (^Xh)
此小部件显示有关上下文名称、标签和
在当前光标位置完成时使用的完成函数。 如果给出
非数字参数 1 (如在`电调2 ^Xh'),然后使用的样式和
也将显示使用它们的上下文。

请注意,有关样式的信息可能不完整; 这取决于
可从调用的完成函数中获得的信息,而这些信息又是
由用户自己的风格和其他设置决定。

_complete_help_generic
与此处列出的其他命令不同,必须将其创建为普通的 ZLE 小部件
而不是完成小部件(即 le -N)。 它用于生成帮助
小部件绑定到 _通用的 上面描述的小部件。

如果这个小部件是使用函数的名称创建的,默认情况下,那么
执行时,它将读取一个键序列。 这预计将绑定到一个电话
到使用 _通用的 小部件。 该小部件将是
执行,并以相同的格式提供信息 _完整_帮助
小部件显示用于上下文完成。

如果小部件的名称包含 调试,例如如果它被创建为`le -N
_complete_debug_generic _complete_help_generic',它将读取并执行
像以前一样用于通用小部件的键串,但随后生成调试信息
正如所做的那样 _complete_debug 用于上下文完成。

如果小部件的名称包含 没读,它不会读取密钥串,而是
安排在同一 shell 中运行的通用小部件的下一次使用将具有
效果如上所述。

该小部件通过设置 shell 参数来工作 ZSH_TRACE_GENERIC_WIDGET 这是
阅读者 _通用的. 取消设置参数会取消任何未决的效果 没读
形式。

例如,在执行以下操作后:

le -N _complete_debug_generic _complete_help_generic
绑定键 '^x:' _complete_debug_generic

打字`Cx :' 后跟通用小部件的键序列将导致跟踪
该小部件的输出将保存到文件中。

_完整_标签 (^Xt)
这个小部件完成了由 标签 or 标签 程序(注意
与完成系统的标签没有联系)存储在文件中 标签
使用的格式 标签标签, 以创建的格式 标签. 它会看起来
备份任一文件第一次出现的路径层次结构; 如果两者都存在,
文件 标签 是首选。 您可以指定一个完整路径 标签 or 标签 文件
通过设置参数 $标签文件 or $标签文件 分别。 相应的
使用的完成标签是 标签标签, 分别在 emacs 和 vi 之后。

UTILITY 职能


描述在编写完成时可能有用的实用程序函数
职能。 如果函数安装在子目录中,则其中大部分位于 基值
子目录。 与发行版中命令的示例函数一样,该实用程序
生成匹配的函数都遵循返回状态零的约定,如果它们
如果无法添加匹配的完成,则生成完成和非零。

提供了另外两个功能 _main_complete 功能。 数组 补偿函数
复合函数 可能包含紧接在或之前调用的函数的名称
完成后已经试过了。 一个函数只会被调用一次,除非它明确
将自身重新插入数组。

_所有_标签 [ -x [ -12VJ ] 行李牌 姓名 描述 [ 命令 ARG ...]
这是一个方便的界面 _下一个标签 下面的函数,实现
循环显示在 _下一个标签 例子。 这 命令 它的参数被称为
生成匹配。 参数中存储的选项 姓名 会自动
被插入 ARGs 传递给 命令. 通常,它们是直接放置的
命令,但如果其中之一 ARGs 是单个连字符,它们被插入
在那之前。 如果连字符是最后一个参数,它将从
之前的参数列表 命令 叫做。 这允许 _所有_标签 要使用的
在几乎所有可以通过单个调用生成匹配的情况下
组合 内置命令或通过调用实用程序功能之一。

例如:

本地 EXPL
...
if _请求 富; 然后
...
_所有_标签 FOO EXPL '……' 组合 ... - $匹配
fi

将完成字符串从 火柴 参数,使用 组合 与其他
选项将优先于由生成的选项 _所有_标签.

_选择 [ -O 姓名 [ -C 姓名 ] 规格 ...
此功能在有多个标签可用的简单情况下很有用。
本质上,它实现了一个循环,就像为 _标签 function
联络一位教师

要使用的标签和在请求标签时要执行的操作使用
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 规格s 的形式为:`行李牌:描述:行动'。 的 行李牌s 提供使用
_标签 如果标签被请求, 行动 用给定的执行
描述 描述。 该 行动s 是那些被接受的 _参数 function
(如下所述),不包括`->'和`=...' 形式。

例如 行动 可能是一个简单的函数调用:

_选择 \
'用户:用户:_用户' \
'主机:主机:_hosts'

提供用户名和主机名作为可能的匹配,由 _users
_主机 分别发挥作用。

喜欢 _参数, 该函数使用 _所有_标签 执行操作,这将
遍历所有标签集。 仅在有特殊情况时才需要特殊处理
额外的有效标签,例如在调用的函数内 _选择.

选项`-O 姓名' 的使用方式与 _参数 功能。 在
换句话说,元素的 姓名 数组将被传递给 组合 ,尤其是
执行一个动作。

喜欢 _标签 此功能支持 -C 选项为
参数上下文字段。

_参数 [ -nswWCRS [ -A [ -O 姓名 [ -M 匹配规格 ]
[ : ] 规格 ...
_参数 [ 选择 ...] -- [ -i [ -s [ 帮助规范 ...]
此函数可用于给出完成的完整规范
其参数遵循标准 UNIX 选项和参数约定的命令。

可选项 简介

选项 _参数 本身必须在单独的词中,即 -s -w,不 -sw。 该
选项后跟 规格s 描述被分析的选项和参数
命令。 规格描述选项标志的 s 必须在前面 规格s 描述
分析行的非选项(“位置”或“正常”)参数。 避免
歧义,所有选项 _参数 本身可以与 规格 表格由
一个冒号。

`--' 形式用于直觉 规格 来自命令帮助输出的表单
正在分析,下面会详细介绍。 这 选择 对于`--' 形式是
否则与第一种形式相同的选项。 注意`-s' 跟在 `--' 有一个
不同于`-s'前面的`--',并且两者都可能出现。

选项开关 -s, -S, -A, -w-W 影响如何 _参数 解析
分析了命令行的选项。 这些开关对于带有以下命令的命令很有用
标准参数解析。

的选项 _参数 具有以下含义:

-n 有了这个选项, _参数 设置参数 诺玛格 的位置
中的第一个正常参数 $字 数组,即后面的位置
选项结束。 如果这个论点还没有达成, 诺玛格 设置
-1. 调用者应该声明`整数 诺玛格'如果 -n 选项是
通过; 否则不使用该参数。

-s 启用 选项 堆叠 对于单字母选项,其中多个
单字母选项可以组合成一个单词。 例如,
两个选项`-x'和`-y' 可以组合成一个词 `-xy'。 经过
默认情况下,每个单词对应一个选项名称(`-xy' 是一个
选项名为`xy“)。

以单个连字符或加号开头的选项有资格
堆叠; 以两个连字符开头的单词不是。

需要注意的是 -s after -- 有不同的含义,这在
题为`推导的部分 规格 来自帮助输出的表格'。

-w 与...结合使用 -s, 允许选项堆叠,即使其中一个或多个
选项带参数。 例如,如果 -x 接受一个论点,没有 -s,
`-xy' 被视为单个(未处理的)选项; 和 -s, -xy 是一个
带有参数的选项`y'; 既 -s-w, -xy 可能是一个选择 -x
和选项 -y 争论仍在继续。

-W 这个选项需要 -w 更进一步:有可能完成
即使在同一个单词中出现参数之后,也可以使用单字母选项。
然而,这取决于所执行的操作选项是否真的是
至此完成。 要获得更多控制,请使用实用函数,例如
_警卫 作为行动的一部分。

-C 修改 上下文 形式为`的动作的参数->'。 这个
下面详细讨论。

-R 当 a 时返回状态 300 而不是零 $州 是要处理的,在
`->绳子' 句法。

-S 在`之后不要完成选项--' 出现在行上,并忽略
`--'。 例如,与 -S, 在行中

foob​​ar -x -- -y

`-x' 被认为是一个选项,`-y' 被认为是一个论点,并且
`--' 被认为两者都不是。

-A 不要在该行的第一个非选项参数之后完成选项。
是匹配所有不被视为的字符串的模式
论据。 例如,要使 _参数 停止完成选项后
第一个普通参数,但忽略所有以连字符开头的字符串
即使他们没有被其中之一描述 选择规格s,形式是`-A
“-*”'.

-O 姓名
传递数组元素 姓名 作为调用函数的参数
执行 行动s。 这将在下面详细讨论。

-M 匹配规格
使用匹配规范 匹配规格 用于完成选项名称和
值。 默认的 匹配规格 允许在`之后完成部分单词_'和
`-',例如完成`-fb' 到`-foo-bar'。 默认的 匹配规格 是:
r:|[_-]=* r:|=*

眼镜: 简介

以下每种形式都是一个 规格 描述单独的选项集或
正在分析的命令行上的参数。

n:消息:行动
n::消息:行动
这描述了 n'th 正常的论点。 这 消息 将打印在上面
生成的匹配项和 行动 表示在此可以完成什么
位置(见下文)。 如果前面有两个冒号 消息 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。
参数是可选的。 如果 消息 只包含空白,什么都不包含
除非操作添加解释,否则将打印在匹配项上方
字符串本身。

:消息:行动
::消息:行动
类似,但描述了 下页 论点,无论发生在什么数字上
是。 如果以正确的顺序在此表单中指定所有参数,则
数字是不必要的。

*:消息:行动
*::消息:行动
*:::消息:行动
这描述了参数(通常是非选项参数,那些不是
以。。。开始 - or +) 在前两个都不是时完成
提供了表格。 可以在此完成任意数量的参数
时尚。

前面有两个冒号 消息 特殊数组和 当前
特殊参数被修改为仅引用正常参数时
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 行动 被执行或评估。 前面三个冒号 消息
它们被修改为仅指此涵盖的正常参数
描述。

选择规格
选择规格:...
这描述了一个选项。 冒号表示处理一个或多个
选项的参数; 如果它不存在,则假定该选项采用
没有争论。

以下表格可用于初始 选择规格, 不管有没有
该选项有参数。

*选择规格
服务 选择规格 是下面剩余的形式之一。 这表明
以下 选择规格 可能会重复。 否则如果对应
选项已存在于命令行左侧
游标它不会再次提供。

-选择名
+选择名
以最简单的形式 选择规格 只是选项名称开头
带有减号或加号,例如`-foo'。 第一个论点
该选项(如果有)必须作为 分开 紧跟在后面的词
选项。

任一`-+选择名'和`+-选择名' 可用于指定
-选择名+选择名 都是有效的。

在所有其余形式中,领先的`-' 可以替换为或
搭配`+' 这样。

-选择名-
选项的第一个参数必须直接在选项之后
姓名 in 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 . 例如,`-富-:...' 指定
完成的选项和参数看起来像`-fooARG'.

-选择名+
第一个参数可能会紧随其后出现 选择名 在相同的
词,也可以在选项后作为一个单独的词出现。 为了
例如,`-foo+:...' 指定完成的选项和参数
看起来像`-fooARG' 或`-foo ARG'.

-选择名=
参数可能出现在下一个词中,也可能出现在同一个词中
选项名称,前提是它用等号分隔,
例如`-foo=ARG' 或`-foo ARG'.

-选择名=-
选项的参数必须出现在等号之后
相同的词,并且可能不会在下一个参数中给出。

选择规格[解释]
解释字符串可以附加到任何前述形式
of 选择规格 将其括在方括号中,如`-q[查询 手术]'.

这个 详细 style 用于决定是否解释字符串
与完成列表中的选项一起显示。

如果没有给出带括号的解释字符串,但 自动描述
样式已设置,并且仅为此描述了一个参数 选择规格
显示样式的值,具有序列的任何外观
`%d' 在它替换为 消息 第一个 选择 接下来
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 选择规格; 见下文。

可以使用文字`+' 或`=' 出现,但那
字符必须加引号,例如`-\+'.

选择 以下 选择规格 必须采用以下形式之一:

:消息:行动
::消息:行动
选项的参数; 消息行动 被视为
普通的论据。 在第一种形式中,参数是强制性的,
在第二种形式中它是可选的。

对于采用多个参数的选项,可以重复该组。
换言之, :留言1:动作1:留言2:动作2 指定
option 有两个参数。

:*模式:消息:行动
:*模式::消息:行动
:*模式:::消息:行动
这描述了多个参数。 只有最后 选择
可以以这种形式给出采用多个参数的选项。 如果
模式 是空的(即 :*:),该行剩下的所有单词都是
将按照说明完成 行动; 否则,所有的话
最多并包括一个与 模式 将完成
使用 行动.

多个冒号被视为`*:...' 普通表格
论据:当 消息 前面有两个冒号,
特殊数组和 当前 期间修改特殊参数
执行或评估 行动 只指单词
选项后。 当前面有三个冒号时,它们被修改
仅指本说明所涵盖的词。

任何文字冒号 选择名, 消息行动 前面必须有一个
反斜杠,`\:'.

上述每种形式都可以在选项名称的括号中以列表开头
和参数编号。 如果给定的选项在命令行上,则选项和
将不提供括号中指明的参数。 例如,`(-二 -三
1)-一:...' 完成选项 `-一'; 如果这出现在命令行上,则
选项 -二-三 并且第一个普通参数将不会在之后完成
它。 `(-foo):...' 指定一个普通的参数完成; -foo 将不
如果该参数已经存在,则完成。

其他项目可能会出现在排除选项列表中,以指示各种其他
当前规格匹配时不应应用的项目:
单星(*) 用于其余参数(即形式`*:...');
冒号 (:) 对于所有正常(非选项)参数; 和一个连字符 (-) 对所有人
选项。 例如,如果`(*)' 出现在选项之前,该选项出现在
命令行,剩余参数列表(上表中显示的参数)
以`开头*:') 将不会完成。

为了帮助重用规范,可以在上述任何形式之前
与`!'; 那么表格将不再填写,尽管如果选项或
参数出现在命令行上,它们将被正常跳过。 主要用途
因为这是参数由数组给出的时候,并且 _参数 叫做
重复更具体的上下文:在第一次调用时`_参数
$全局选项' 被使用,并在随后的调用中`_参数 !$^全局选项'.

眼镜: 行动

在上面的每个表格中 行动 确定应如何完成
生成。 除了`->绳子'下面的表格, 行动 将被执行
称呼 _所有_标签 函数来处理所有标签标签。 无特殊处理
除非函数调用引入新的,否则需要标签。

调用执行的函数 行动s 将被调用的元素
由`命名的数组-O 姓名' 选项作为参数。 这可以用于,例如,
传递相同的选项集 组合 内置于所有 行动s.

表格 行动 如下面所述。

(单个不带引号的空格)
这在需要参数但不可能或
希望为其生成匹配项。 这 消息 将显示但没有
列出的完成。 请注意,即使在这种情况下,末尾的冒号
消息 需要; 只有当两者都不是时才可以省略 消息 也不是
行动 给出。

(项目1 项目2 ...)
可能匹配的列表之一,例如:

:foo:(富 酒吧 巴兹)

((项目1\:描述1 ...))
与上述类似,但对每个可能的匹配进行了描述。 笔记
冒号前的反斜杠。 例如,

:foo:((a\:酒吧 b\:baz))

匹配项将与其描述一起列出,如果
描述 样式设置为 价值观 在上下文中标记。

->绳子
在这种形式中, _参数 处理参数和选项,然后
将控制权返回给调用函数,参数设置为指示
加工状态; 然后调用函数做出自己的安排
用于生成完成。 例如,实现状态的函数
机器可以使用这种类型的动作。

其中 _参数 遭遇 行动 在`->绳子' 格式,它将剥离
来自的所有前导和尾随空格 绳子 并设置数组
所有的集合 绳子s 要执行的操作。 要素
数组的 状态描述 被分配了相应的 消息 领域从
选择 包含这样一个 行动.

默认情况下,与所有其他表现良好的完成功能一样,
_arguments 如果能够添加匹配项和非零,则返回状态零
否则。 然而,如果 -R 给出了选项, _参数 将取而代之
返回状态 300 以指示 $州 是要处理的。

此外 $州$状态描述, _参数 还设置了全球
参数`上下文',`线'和`选择参数' 如下所述,并且不
重置对特殊参数所做的任何更改,例如 字首.
这使调用函数可以选择重置这些参数或
传播他们的变化。

一个函数调用 _参数 至少有一个动作包含一个
`->绳子' 因此必须声明适当的局部参数:

本地 上下文 状态描述 线
排版 -A 选择参数

防止 _参数 从改变全球环境。

{评估字符串}
花括号中的字符串被评估为 shell 代码以生成匹配。 如果
评估字符串 它本身不以左括号或大括号开头
在执行前拆分成单独的词。

= 行动
如果 行动 以`开头= '(等号后跟一个空格),
_参数 将插入内容 论点 电流场
上下文作为新的第一个元素 特殊数组和增量
的价值 当前 特殊参数。 这具有以下效果
在不更改的情况下在完成命令行中插入一个虚拟词
完成的时间点。

这对于限制单词的说明符之一最有用
命令行 行动 是操作(两个和三个冒号
以上表格)。 一种特殊用途是当 行动 本身导致 _参数
在有限的范围内; 有必要使用这个技巧来插入一个
适当的命令名称进入第二次调用的范围 _参数
能够解析该行。

单词 ...
单词 ...
这涵盖了上述以外的所有形式。 如果 行动 以一个开始
空格,剩余的单词列表将不变地调用。

否则它将被调用,并在第一个之后放置一些额外的字符串
单词; 这些将作为选项传递给 组合 内置。 他们
确保指定的状态 _参数特别是
选项和参数的描述,正确传递给完成
命令。 这些附加参数取自数组参数
`EXPL'; 这将在执行之前设置 行动 因此可能是
在它内部引用,通常是形式`$解释[@]'
它保留了数组的空元素。

在执行动作期间,数组`线' 将被设置为正常
命令行中的参数,即命令行中的单词
命令名称不包括所有选项及其参数。 选项存储在
关联数组`选择参数' 以选项名称作为键,它们的参数作为
值。 对于具有多个参数的选项,它们作为一个参数给出
字符串,以冒号分隔。 原始参数中的所有冒号都位于前面
带反斜杠。

参数`上下文' 在返回调用函数执行一个
形式的动作`->绳子'。 它被设置为对应于的元素数组
的元素 $州. 每个元素都是参数字段的合适名称
上下文:形式为`的字符串选项-选择-n' 为了 n'的第一个论点
选项 -选择, 或形式为 ` 的字符串争论-n' 为了 n'第一个论点。 为了
`rest' 参数,即列表末尾未按位置处理的参数, n
是字符串`其余'。 例如,在完成论证的时候 -o 选项,
名字是`选项-o-1',而对于第二个正常(非选项-)参数,它是
`论证-2'.

此外,在评估过程中 行动 中的上下文名称 上下文
参数被更改以附加存储在 上下文
参数。

选项 -C 告诉 _参数 修改 上下文 动作的参数
形式`->'。 这是用于跟踪
当前上下文。 在这里(而不是 上下文 数组)应该是本地的
调用函数以避免传回修改后的值,应进行初始化
到函数开始时的当前值:

本地 curcontext="$curcontext"

这在多个状态不可能同时有效的情况下很有用。

指定 of 选项

可以使用集合指定多组选项和参数
由单个连字符分隔。 第一个连字符之前的规格(如果有)
由所有剩余的集合共享。 每隔一组中的第一个词提供
可能出现在规范的排除列表中的集合的名称,或者
单独或在上述可能值之一之前。 在第二种情况下
`-' 应该出现在这个名字和其余部分之间。

例如:

_参数 \
-a \
- set1 \
-c \
- set2 \
-d \
':arg:(x2 y2)'

这定义了两个集合。 当命令行包含选项`-c',`-d'
option 并且该参数不会被视为可能的完成。 当它
包含`-d' 或参数,选项 `-c' 将不予考虑。 然而,
之后`-a' 两个集合仍将被视为有效。

如果为互斥集合之一给出的名称的形式为`(姓名)'
那么每组中只有一个值将被完成; 更正式地说,所有
规范与同一组中的所有其他规范互斥。
这对于定义多组相互排斥的选项很有用
并且其中选项是彼此的别名。 例如:

_参数 \
-a -b \
- '(压缩)' \
{-c,--compress}'[压缩]' \
- '(解压)' \
{-d,--decompress}'[解压缩]'

由于完成代码必须为每个设置单独解析命令行
论证的形式很慢,只应在必要时使用。 一个有用的
Alternative 通常是带有剩余参数的选项规范(如
`-富:*:...'); 这里的选项 -foo 吞噬所有剩余的论点
由...描述 选择 定义。

派生 规格 形式 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 帮助 产量

选项`--' 允许 _参数 计算出长选项的名称
支持` - 帮帮我' 选项在许多 GNU 命令中是标准的。 命令
使用参数 ` 调用单词 - 帮帮我' 以及检查选项名称的输出。
显然,将它传递给可能不支持它的命令可能很危险
选项,因为命令的行为未指定。

除了选项,`_参数 --' 将尝试推断参数的类型
形式为 ` 时可用于选项--选择=VAL' 已验证。 也可以
通过检查命令的帮助文本并添加提示来提供提示 帮助规范
形式`模式:消息:行动'; 请注意,其他 _参数 规格 不使用表格。
这个 模式 与选项的帮助文本匹配,如果它匹配
消息行动 与其他参数说明符一样使用。 的特殊情况
`*:' 表示两者 消息行动 是空的,这会导致
帮助输出中没有描述的选项在列表中排序
有描述的选项。

例如:

_参数 -- '*\*:切换:(是的 不)' \
'*=文件*:文件:_文件' \
'*=DIR*:目录:_files -/' \
'*=PATH*:目录:_files -/'

在这里,`'和`没有' 将作为选项的参数完成,其描述
以星号结尾; 将完成包含子字符串的选项的文件名
`=文件' 在描述中; 和目录将为选项完成
描述包含`=目录' 或`=路径'。 最后三个实际上是默认值
所以不需要明确给出,尽管可以覆盖
这些模式。 使用此功能的典型帮助文本是:

-C, --目录=目录 更改 目录 DIR

这样上面的规范就会导致目录完成后
`- 目录',虽然不是在 `-C'.

另请注意 _参数 试图自动找出
选项是可选的。 这可以通过在前面加倍冒号来明确指定
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 消息.

如果 模式 以`结尾( - )',这将从模式中删除,并且 行动
只会在 ` 之后直接使用=',而不是在下一个词中。 这是
以 ` 形式定义的正常规范的行为=-'.

`_参数 --' 后面可以跟选项 `-i 模式' 给出模式
对于未完成的选项。 模式可以作为名称给出
数组参数或括号中的文字列表。 例如,

_参数 -- -i \
"(--(en|dis)able-FEATURE*)"

将导致完成忽略选项`--启用功能'和
`--禁用功能'(这个例子对 GNU 很有用 配置).

`_参数 --' 形式也可以后跟选项 `-s ' 来描述
选项别名。 这 由一系列交替模式和
相应的替换,用括号括起来并引用,以便它形成一个单一的
中的论据词 _参数 呼叫。

例如,一些 配置-script 帮助输出仅将选项描述为
`--启用-foo',但脚本也接受否定形式 `--禁用-foo'。 到
允许完成第二种形式:

_参数 -- -s "((#s)--启用- --禁用-)"

其他 笔记

最后,请注意 _参数 通常期望是主要的功能处理
使用它的任何完成。 它可能会产生副作用,从而改变
处理由其后调用的其他函数添加的任何匹配项。 结合
_参数 与其他函数一起,这些函数应该在之前调用
_参数,作为 行动规格, 或在 ` 的处理程序中->'的行动。

这是一个更一般的使用示例 _参数:

_参数 '-l+:左 边界:' \
'-格式:纸张 尺寸:(字母 A4)' \
'*-复制:输出 文件:_文件::分辨率:(300 600)' \
':后记 文件:_文件 -g \*.\(ps\|eps\)' \
'*:页 数字:'

这描述了三个选项:`-l',`-格式',和`-复制'。 第一个需要一个
参数描述为` 边界' 不会提供任何完成,因为
的空动作。 它的参数可能直接出现在`-l' 或者它可能是
作为该行的下一个单词给出。

`-格式' 选项在下一个单词中接受一个参数,描述为 ` 尺寸'
只有字符串 `邮件'和`A4' 将完成。

`-复制' 选项可能会在命令行中出现多次,并且需要两次
论据。 第一个是强制性的,将作为文件名完成。 第二
是可选的(因为描述前的第二个冒号`分辨率') 和
将从字符串完成 `300'和`600'.

最后两个描述说明了应该作为参数完成的内容。 首先
将第一个参数描述为 `后记 文件' 并使文件以 ` 结尾ps'
或`每股收益'完成。 最后的描述给出了所有其他论点
描述` 数字' 但不提供补全。

_缓存_无效 缓存标识符
如果完成缓存对应于
给定的缓存标识符需要重建。 它通过查找
缓存策略 当前上下文的样式。 这应该提供一个函数名称
它以相关缓存文件的完整路径作为唯一参数运行。

计费示例:

_example_caching_policy () {
# 重建 if 缓存 is 更多 a
本地 -a 旧版
老p=( "$1"(Nm+7) )
(( $#oldp ))
}

_call_函数 回报 姓名 [ ARG ...]
如果有功能 姓名 存在,它用参数调用 ARG秒。 该 回报
参数给出一个参数的名称,其中函数的返回状态
姓名 应储存; 如果 回报 为空或单个连字符将被忽略。

的返回状态 _call_函数 如果函数本身为零 姓名 存在并且
被调用,否则非零。

_调用_程序 行李牌 绳子 ...
此功能为用户提供了一种机制来覆盖外部的使用
命令。 它查找 命令 与提供的样式 行李牌. 如果风格是
set,它的值被用作要执行的命令。 这 绳子s 从调用到
_调用_程序, 或从样式(如果设置)与它们之间的空格连接
并评估结果字符串。 返回状态是返回状态
调用的命令。

_组合 [ -s 模式 ] 行李牌 样式 规格 ... 部分 选择 ...
此函数用于完成值的组合,例如对
主机名和用户名。 这 样式 参数给出了定义
对; 它是在上下文中查找的 行李牌 指定的。

样式名称由用连字符分隔的字段名称组成,例如
`用户-主机-端口'。 对于每个字段的值是已知的,一个 规格
形式`部分=模式' 给出。 例如,如果到目前为止的命令行指定了一个
用户`战俘',论点`用户=密码' 应该出现。

下一个不带等号的参数被视为字段的名称
应该生成完成(大概不是其中之一 部分s
值已知)。

生成的匹配将从样式的值中获取。 这些应该
以适当的顺序包含组合的可能值(用户、
上例中的主机、端口)。 不同字段的值
不同的字段用冒号分隔。 这可以通过选项更改 -s
_组合 它指定了一个模式。 通常这是一个字符类,如
例如`-s “[:@]”' 在这种情况下 用户-主机 风格。 每个
`部分=模式' 规范限制适用于元素的补全
具有适当匹配字段的样式。

如果没有为给定标签定义具有给定名称的样式,或者如果没有
样式值匹配的字符串,但前面是必填字段的函数名
通过定义下划线,将调用该函数以生成匹配项。
例如,如果没有`用户-主机-端口' 或没有匹配的主机名,当主机
是必需的,函数`_主机' 将被自动调用。

如果同一名称用于多个字段,则在 `部分=模式'和
给出要完成的字段名称的参数,
字段(以 XNUMX 开头)可以在字段名之后给出,并用 a 分隔
冒号。

所需字段名称之后的所有参数都传递给 组合 生成时
匹配样式值,或者匹配字段的函数(如果它们是)
叫。

_描述 [-12JVx[ -oO | -t 行李牌 ] 描述 name1 [ name2 [ 选择 ...]
[ -- name1 [ name2 [ 选择 ...] ...]
此函数将完成与描述相关联。 多个组分开
by -- 可以提供,可能有不同的完成选项 选择s.

这个 描述 如果 格式 风格为
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 说明 标签已设置。 后面是一个或两个数组名称
然后是传递给的选项 组合. 第一个数组包含可能的
以 ` 形式描述的补全完成:描述'。 任何
文字冒号 完成 必须用反斜杠引用。 如果第二个数组是
给定,它应该具有与第一个相同数量的元素; 在这种情况下
添加相应的元素作为可能的完成,而不是 完成
来自第一个数组的字符串。 完成列表将保留描述
从第一个数组。 最后,可以出现一组完成选项。

如果选项`-o' 出现在第一个参数之前,添加的匹配项将是
被视为命令选项的名称(注意不是 shell 选项),通常遵循
`-',`--' 或`+' 在命令行上。 在这种情况下 _描述 使用
隐藏前缀, 需要前缀详细 样式来确定字符串是否应该
被添加为完成,如果描述应该显示。 没有`-o'
选项,只有 详细 style 用于决定描述的显示方式。 如果
`-O' 代替 `-o',命令选项如上完成但 _描述
不会处理 需要前缀 的风格。

随着 -t 选项a 行李牌 可以指定。 默认是`价值观' 或者,如果 -o
给出了选项,`选项'.

选项 -1, -2, -J, -V, -x 传递给 _下一个标签.

如果被选中 列表分组 样式,具有相同描述的字符串将
一起出现在列表中。

_描述 使用 _所有_标签 生成匹配的函数,所以它不
需要出现在标签标签的循环内。

_描述 [ -x [ -12VJ ] 行李牌 姓名 描述 [ 规格 ...]
此功能不要与前一个功能混淆; 它被用作助手
用于创建选项的函数 组合. 它被埋在许多更高的地方
级别完成函数,因此通常不需要直接调用。

下面列出的样式是在当前上下文中使用给定的 行李牌。 该
结果选项 组合 被放入名为的数组中 姓名 (这是
传统上`EXPL',但不强制执行此约定)。 描述为
相应的匹配集被传递给函数 描述.

测试的样式是: 格式, , 匹配器, 忽略模式团队名字.
这个 格式 样式首先针对给定的进行测试 行李牌 然后对于 说明
如果没有找到值,则标记,而其余部分仅针对给出的标记进行测试
第一个论点。 该函数还调用 _设置 它测试了更多样式。

由返回的字符串 格式 样式(如果有)将被修改,以便
序列`%d' 被替换为 描述 作为第三个参数给出,没有任何
前导或尾随空格。 如果在删除空白区域后, 描述 is
空字符串,将不使用格式样式并将选项放入
姓名 数组将不包含要显示在上方的解释字符串
匹配。

If _描述 用三个以上的参数调用,附加的 规格s
应该是形式`坦克:STR'。 这些供应转义序列替换
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 格式 风格:每一次出现`%坦克' 将替换为 绳子.

如果 -x 给出选项,描述将被传递给 组合 使用 -x
选项而不是默认值 -X. 这意味着描述将是
即使没有对应的匹配项也会显示。

放置在数组中的选项 姓名 考虑到 团队名字 风格,所以
如有必要,匹配项将放在单独的组中。 该组通常有其
排序的元素(通过传递选项 -J组合),但如果一个选项开始
与`-V',`-J',`-1',或`-2' 被传递给 _描述,该选项将是
包含在数组中。 因此,完成组可能是
通过给出选项 ` 未排序-V',`-1V',或`-2V'.

在大多数情况下,该函数将像这样使用:

本地 EXPL
_描述 EXPL 文件
组合 “$expl[@]” - “$文件[@]”

注意参数的使用 EXPL、连字符和匹配列表。 几乎
所有调用 组合 在完成系统中使用类似的格式; 这
确保用户指定的样式正确地传递给内置函数
实施完成的内部结构。

_派遣 上下文 绳子 ...
这将当前上下文设置为 上下文 并寻找完成功能
通过搜索命令名称或特殊的列表来处理此上下文
上下文(如上所述 定义) 给出为 绳子s。 第一次完成
为列表中的上下文之一定义的函数用于生成
火柴。 通常,最后一个 绳子 is - 默认 - 导致默认功能
完成以用作后备。

函数设置参数 $服务 以及 绳子 正在尝试,并设置
上下文/命令 字段(第四个) $当前上下文 的参数 上下文
作为第一个参数给出。

_FILES 该功能 _FILES 电话 _路径_文件 除了所有参数之外
HPMC胶囊 -g-/. 这两个选项的使用取决于
文件模式 的风格。

此函数接受允许的全部选项 _路径_文件, 描述
联络一位教师

_gnu_generic
这个函数是一个简单的包装器 _参数 功能如上所述。
它可用于自动确定命令理解的长选项
传递选项时产生一个列表` - 帮帮我'。 它旨在用作
一个独立的顶级完成功能。 例如,启用选项
命令的完成 FOO酒吧, 使用

定义 _gnu_generic FOO 酒吧

调用后 组合.

所提供的完成系统在使用此功能时是保守的,
因为确保命令理解选项非常重要 - 帮帮我'.

_警卫 [ 选项 ] 模式 描述
该功能显示 描述 if 模式 匹配要完成的字符串。 它是
旨在用于 行动 对于传递给的规范 _参数
类似的功能。

如果显示消息并且要完成的单词是,则返回状态为零
不为空,否则为非零。

这个 模式 前面可以有任何被理解的选项 组合
传承自 _描述-M, -J, -V, -1, -2, -n, -F-X。 所有的
这些选项将被忽略。 这很适合参数传递
行动公约 _参数.

例如,考虑一个带有选项的命令 -n-none,在 Moku:Pro 上 -n 必须
后跟同一个单词中的数值。 通过使用:

_参数 '-n-: :_警卫 “[0-9]#” “数字 价值”' '-没有任何'

_参数 可以使两者都显示消息`数字 折扣值' 并完成
` 之后的选项-n'。 如果`-n' 后面已经有一个或多个数字
(模式传递给 _警卫) 只会显示消息; 如果`-n' 是
后跟另一个字符,只有选项完成。

_信息 [ -r12 [ -VJ ] 描述
_信息 -e [ 行李牌 ] 描述
这个 描述 以与第三个参数相同的方式使用 _描述
函数,除了结果字符串将始终显示是否
匹配已生成。 这对于在地方显示帮助消息很有用
无法生成完成的地方。

这个 格式 风格检查与 条未读消息 标记以查找消息; 通常
当天, 说明, 仅在未使用前者设置样式时使用。

如果 -r 给出选项,不使用样式; 这 描述 字面意思是
要显示的字符串。 这是最有用的,当 描述 来自预处理
已包含扩展描述的参数列表。

这个 -12VJ 选项和 传递给 组合 并因此确定组
消息字符串被添加到。

第二 -e form 给出了使用标签完成的描述 行李牌 显示
即使该标签没有匹配项。 这种形式被称为 _参数 in
选项规范没有动作的事件。 标签可以是
省略,如果是,则标签取自参数 $curtag; 这是维护
由完成系统等通常是正确的。 请注意,如果没有
在调用此函数时匹配, compstate[插入] 被清除,所以
稍后生成的其他匹配不会插入到命令行中。

_multi_parts 九月 排列
论据 九月 是分隔符。 这 排列 可能是一个名字
数组参数或形式为 ` 的文字数组(富 酒吧)',括号内的列表
用空格分隔的单词。 可能的补全是来自
大批。 但是,每个块由 九月 将分别完成。 为了
例如, _柏油 函数使用`_multi_parts / 路径数组' 完成部分文件
来自给定完整文件路径数组的路径。

这个 -i 选择原因 _multi_parts 即使需要插入唯一匹配项
要插入多个分隔符。 这通常不是预期的行为
带有文件名,但某些其他类型的补全,例如带有
固定的一组可能性,可能更适合这种形式。

与其他实用程序函数一样,此函数接受 `-V',`-J',`-1',`-2',
`-n',`-f',`-X',`-M',`-P',`-S',`-r',`-R',和`-q' 选项并将它们传递给
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 组合 内置。

_下一个标签 [ -x [ -12VJ ] 行李牌 姓名 描述 [ 选项 ...]
该函数用于实现对不同标签标签的循环
如上所述的特定标签 标签顺序 风格。 在每次通话时,它都会检查
查看是否还有标签标签; 如果有它返回状态零,
否则非零。 由于此功能需要设置当前标签,因此它必须
总是听从电话 _标签 or _请求.

这个 -x12VJ 选项和前三个参数被传递给 _描述
功能。 在适当的情况下 行李牌 在此调用中将被替换为标签标签。
中给出的任何描述 标签顺序 风格优先于 描述 传递给
_下一个标签.

这个 选项s 后给出 描述 在给定的参数中设置 姓名, 因此
将被传递给 组合 或调用任何函数来添加匹配项。

下面是这个函数对标签的典型用法 FOO. 对 _请求
确定是否标记 FOO 完全需要; 循环结束 _下一个标签 处理任何
为标签定义的标签 标签顺序 的风格。

本地 EXPL 保留=1
...
if _请求 富; 然后
...
_下一个标签 FOO EXPL '...'; do
组合 “$expl[@]” ... && 保留=0
完成
...
fi
回报 RET

_普通的
这是调用来处理任何特殊之外的完成的标准函数
-上下文-. 调用它来完成命令字和参数
为一个命令。 在第二种情况下, _普通的 寻找一个特殊的完成
命令,如果没有,则使用完成 - 默认 - 上下文。

第二个用途是重新检查由 $字 数组和
$当前 修改后的参数。 例如,函数
_预命令, 它在预命令说明符之后完成,例如 诺哈普, 删除
的第一个词 数组,递减 当前 参数,然后调用
_普通的 再次。 效果是`诺哈普 CMD ...' 的处理方式与
`CMD ...'.

如果命令名称与选项之一给出的模式之一匹配 -p or
-P定义,调用相应的完成函数,然后
参数 _compskip 被检查。 如果设置完成,则终止
即使没有找到匹配项。 这与中的效果相同
-第一的- 上下文。

_options
这可用于完成 shell 选项的名称。 它提供了一个匹配器
忽略前导 ` 的规范没有',忽略下划线并允许
大写字母以匹配对应的小写字母(例如,`水珠',
`无球',`没有_GLOB' 全部完成)。 任何参数都会传播到
组合 内置。

_选项_集_选项_取消设置
这些函数仅完成设置或取消设置选项,具有相同的匹配
规范中使用 _options 功能。

请注意,您需要取消注释 _main_complete 功能
这些功能才能正常工作。 有问题的行用于存储
在完成小部件本地设置选项之前生效的选项设置
需要。 因此,完成系统通常不使用这些功能。

_参数
这用于完成 shell 参数的名称。

选项`-g 模式' 将完成限制为类型匹配的参数
模式. 参数的类型由 ` 表示打印 ${(吨)停止}', 因此
明智地使用`*' 在 模式 可能是必要的。

所有其他参数都传递给 组合 内置。

_路径_文件
此函数在整个完成系统中用于完成文件名。 它
允许完成部分路径。 例如,字符串 `/你/我/我/信号' 也许
完成到`/usr/include/sys/signal.h'.

双方接受的选项 _路径_文件_FILES 是:

-f 完成所有文件名。 这是默认设置。

-/ 指定只应完成目录。

-g 模式
指定只有匹配的文件 模式 应该完成。

-W 路径
指定要附加到字符串的路径前缀
生成文件名的命令行,但不应插入为
完成也不显示在完成列表中。 这里, 路径 可能是名字
数组参数,括号中的路径的文字列表或
绝对路径名。

-F 被忽略的文件
这与对应的选项的行为相同 组合 内置。 它
直接控制哪些文件名应该被忽略。 如果选项
不存在,则 忽略模式 风格被使用。

以上皆是 _路径_文件_FILES 还接受以下传递给的选项
组合:`-J',`-V',`-1',`-2',`-n',`-X',`-M',`-P',`-S',`-q',`-r'和
`-R'.

最后,该 _路径_文件 函数使用样式 扩大, 暧昧, 特殊目录,
列表后缀文件排序 如上所述。

_pick_variant [ -b 内置标签 [ -c 命令 [ -r 姓名 ]
标签=模式 ... 标签 [ ARG ...]
此功能用于解决单个命令名称需要的情况
一种以上的处理方式,要么是因为它有多个变体,要么
因为两个不同的命令之间存在名称冲突。

要运行的命令取自数组的第一个元素 除非这
被选项覆盖 -c. 运行此命令并比较其输出
带有一系列图案。 可以指定要传递给命令的参数
在所有其他争论之后。 给出了按顺序尝试的模式
通过论点 标签=模式; 如果 ` 的输出命令 ARG ...' 包含
模式, 然后 标签 被选为命令变体的标签。 如果没有
模式匹配,选择最终命令标签并返回状态 1。

如果`-b 内置标签' 给出,则测试该命令是否提供
作为内置外壳,可能自动加载; 如果是这样,标签 内置标签 选择
作为变体的标签。

如果`-r 姓名' 给出,则 标签 拾取存储在名为的参数中 姓名.

结果也缓存在 _cmd_变体 由索引的关联数组
命令运行的名称。

_regex_arguments 姓名 规格 ...
该函数生成一个完成函数 姓名 符合规格
规格s,一组正则表达式,如下所述。 运行后
_regex_arguments, 功能 姓名 应该被称为正常完成
功能。 要匹配的模式由 排列起来
与空字符连接在一起的当前光标位置; 没有报价
被应用。

参数被分组为由 ` 分隔的备选方案集|',已尝试
一个接一个,直到一个匹配。 每个备选方案由一个或多个
从左到右尝试的规范,每个匹配的模式是
依次从正在测试的命令行中剥离,直到所有组
成功或直到失败; 在后一种情况下,尝试下一个替代方案。
这个结构可以通过使用括号重复到任意深度; 匹配
从内到外进行。

如果没有测试成功但剩余的命令行,则应用特殊过程
字符串不包含空字符(暗示剩余的单词是
将生成完成)。 完成目标仅限于
剩余的单词和任何 行动s 对应的模式被执行。 在
在这种情况下,不会从命令行字符串中删除任何内容。 的顺序
评估 行动s 可以由 标签顺序 风格; 各种种类
支持的格式 _选择 可用于 行动。 该 描述 是用来
设置数组参数 EXPL.

规范参数采用以下形式之一,其中元字符如
作为`(',`)',`#'和`|' 应该被引用。

/模式/ [%展望%[-守卫[:行李牌:描述:行动]
这是一个单一的原始组件。 该函数测试是否
组合模式`(#b)((#B)模式)展望*' 匹配命令行
细绳。 如果是这样,`守卫' 被评估并检查其返回状态以
确定测试是否成功。 这 模式 字符串`[]' 保证
永远不匹配。 这 展望 之前没有从命令行中剥离
检查下一个模式。

论据以 : 以与参数相同的方式使用
_选择.

一个组件的使用如下: 模式 测试组件是否
已经存在于命令行中。 如果是这样,任何以下
检查规范以找到要完成的内容。 如果一个组件
已达到,但命令行上尚不存在此类模式,字符串
行动 用于生成要在该点插入的匹配项。

/模式/+ [%展望%[-守卫[:行李牌:描述:行动]
这类似于`/模式/ ...' 但命令行的左边部分
字符串(即已经被先前模式匹配的部分)也是
被视为完成目标的一部分。

/模式/- [%展望%[-守卫[:行李牌:描述:行动]
这类似于`/模式/ ...'但是 行动当前的 s 和
即使以下 `,先前匹配的模式也会被忽略模式'
匹配空字符串。

( 规格 )
括号可用于分组 规格小号; 注意每个括号都是一个
争论 _regex_arguments.

规格 # 这允许任意数量的重复 规格.

规格 规格
他们俩 规格如上所述,s 将一个接一个地匹配。

规格 | 规格
两者中的任何一个 规格s 可以匹配。

该功能 _regex_words 可以用作辅助函数来生成匹配项
一组替代词,可能带有自己的参数作为命令行
论据。

例子:

_regex_arguments _tst /$'[^\0]#\0'/ \
/$'[^\0]#\0'/ :'compadd 啊'

这会生成一个函数 _tst 完成 AAA 作为它唯一的论据。 这 行李牌
描述 为简洁起见,该操作已被省略(这有效但不是
建议正常使用)。 第一个组件匹配命令字,即
随意的; 第二个匹配任何参数。 由于论点也是任意的,
任何以下组件都不依赖于 AAA 在场。

_regex_arguments _tst /$'[^\0]#\0'/ \
/$'aaa\0'/ :'compadd 啊'

这是比较典型的用法; 它是相似的,但任何以下模式只会
匹配如果 AAA 作为第一个论点出现。

_regex_arguments _tst /$'[^\0]#\0'/ \( \
/$'aaa\0'/ :'compadd 啊' \
/$'bbb\0'/ :'compadd bb' \) \#

在此示例中,可以完成不定数量的命令参数。 奇怪的
参数完成为 AAA 甚至争论为 BBB. 完成失败,除非
一组 AAABBB 当前参数正确匹配之前的参数。

_regex_arguments _tst /$'[^\0]#\0'/ \
\( /$'aaa\0'/ :'compadd 啊' \| \
/$'bbb\0'/ :'compadd bb' \) \#

这是相似的,但要么 AAA or BBB 可以为任何参数完成。 在这个
案件 _regex_words 可用于生成合适的表达式
参数。

_regex_words 行李牌 描述 规格 ...
此函数可用于生成参数 _regex_arguments 命令
它可以插入到需要一组规则的任何位置。 这 行李牌
描述 给出与当前上下文相关的标准标签和描述。
规格 包含两个或三个用冒号分隔的参数:注意有
在这种情况下没有前导冒号。

规格 给出可以在此时完成的一组单词中的一个,一起
有论据。 因此大致等价于 _参数 使用时的功能
在正常(非正则表达式)完成。

部分 规格 第一个冒号之前是要补全的单词。 这可能
包含一个 *; 整个单词,之前和之后 * 已完成,但只有
之前的文字 * 需要匹配上下文,以便进一步
参数可以在缩写形式之后完成。

第二部分 规格 是对正在完成的单词的描述。

可选的第三部分 规格 描述词如何跟随一个存在
完成的都是自己要完成的。 它将被评估以避免
引用问题。 这意味着它通常包含对
包含先前生成的正则表达式参数的数组。

选项 -t 术语 指定单词的终止符而不是通常的空格。
这以选项的方式作为可自动删除的后缀处理 -s 九月
_值.

处理结果由 _regex_words 被放置在数组中 一个回复,这
应该对调用函数进行本地化。 如果一组单词和参数
可以重复匹配,a # 应该附加到生成的数组中
点。

例如:

本地 -a 一个回复
_regex_words mydb 命令 '我的数据库 命令' \
'添加:添加 an 条目 mydb:$mydb_add_cmds' \
'显示:显示 in 我的数据库'
_regex_arguments _mydb “$回复[@]”
_mydb “$@”

这显示了命令的完成功能 数据库 这需要两个命令
论据, 显示. 显示 不接受任何论据,而论据为 它们在许多情况下都能提供类似的结果。
已经在数组中准备好了 mydb_add_cmds,很可能是通过先前的调用
_regex_words.

_请求 [ -x [ -12VJ ] 行李牌 [ 姓名 描述 [ 命令 [ ARG ...]]
这个函数被调用来决定一个标签是否已经被一个调用注册到
_标签 (见下文)已被用户请求,因此应该完成
为它表演。 如果请求标签且非零,则返回状态零
否则。 该函数通常用作不同标签的循环的一部分,如
如下:

_标签 FOO 酒吧 巴兹
_标签; do
if _请求 富; 然后
... # 演出 完成 HPMC胶囊 FOO
fi
... # 测试 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 标签 酒吧 巴兹 in 这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 方式
... # 出口 循环 if 火柴 产生
完成

请注意,是否生成匹配项的测试不会执行,直到
结束 _标签 环形。 这样用户就可以设置 标签顺序 风格
指定一组标签同时完成。

If 姓名描述 给出, _请求 呼叫 _描述 与这些功能
参数连同传递给的选项 _请求.

If 命令 给定, _所有_标签 函数将立即调用
相同的论点。 在简单的情况下,这使得执行测试成为可能
标签和匹配一气呵成。 例如:

本地 EXPL 保留=1
_标签 FOO 酒吧 巴兹
_标签; do
_请求 FOO EXPL '描述' \
组合 foob​​ar 富巴兹 && 保留=0
...
(( RET )) || 打破
完成

如果 命令 是不是 组合,但它必须准备好处理相同的
选项​​。

_retrieve_cache 缓存标识符
此函数从给出的文件中检索完成信息
缓存标识符,存储在指定的目录中 缓存路径 风格
默认为 〜/ .zcompcache. 如果检索成功,则返回状态为零。
它只会尝试检索,如果 使用缓存 样式已设置,因此您可以调用它
功能而不用担心用户是否想使用缓存层。

参见 _store_cache 下方以获取更多详细信息。

_sep_parts
此函数通过交替数组和分隔符作为参数传递。 数组
指定要由分隔符分隔的部分字符串的完成。 这
数组可以是数组参数的名称或引用的单词列表
括弧。 例如,使用数组 `主机=(ftp 消息)'电话'_sep_parts
'(富 酒吧)' @ 为了' 将完成字符串 `f' 到`FOO' 和字符串 `b@n' 至
`酒吧@新闻'.

该函数接受 组合 选项`-V',`-J',`-1',`-2',`-n',`-X',`-M',
`-P',`-S',`-r',`-R',和`-q' 并将它们传递给 组合 内置用于
添加匹配项。

_顺序 [ -s 九月 [ -n 最大 [ -d ] function [ - ] ...
此函数是其他函数的包装器,用于完成单独的项目
列表。 相同的函数用于完成列表中的每个项目。 分隔符是
指定 -s 选项。 如果 -s 省略它将使用`,'。 重复值
不匹配,除非 -d 被指定。 如果有固定或最大数量的
列表中的项目,这可以用 -n 选项。

相当常见 组合 选项被传递给函数。 可以使用 组合
直接与 _顺序虽然 _值 在这种情况下可能更合适。

_设置 行李牌 [ ]
该函数设置完成系统使用的特殊参数
适当地为 行李牌 作为第一个参数给出。 它使用样式
列表颜色, 列表包装, 列表行优先, 最后提示, 接受精确, 菜单
强制列表.

可选的 提供匹配项所在组的名称
放置。 如果没有给出,则 行李牌 用作组名。

这个函数是自动调用的 _描述 因此通常不是
显式调用。

_store_cache 缓存标识符 停止 ...
该功能与 _retrieve_cache_缓存_无效, 实现一个
缓存层,可用于任何完成功能。 获得的数据
昂贵的操作存储在参数中; 这个函数然后转储值
这些参数到一个文件。 然后可以从该文件中快速检索数据
通过 _retrieve_cache,即使在 shell 的不同实例中。

这个 缓存标识符 指定数据应转储到的文件。 这
文件存储在指定的目录中 缓存路径 默认为的样式
〜/ .zcompcache。 The remaining剩余的 停止s 参数是要转储到的参数
文件中。

如果存储成功,则返回状态为零。 该功能只会
尝试存储,如果 使用缓存 样式已设置,因此您可以调用此函数
不用担心用户是否想使用缓存层。

完成函数可以避免调用 _retrieve_cache 当它已经有了
完成数据可作为参数。 但是,在这种情况下,它应该调用
_缓存_无效 检查参数和缓存中的数据是否正确
还是有效。

请参阅 _perl_modules 完成函数以获取使用
缓存层。

_标签 [[ -C 姓名 ] 行李牌 ...]
如果使用参数调用,这些将被视为有效的标签名称
在当前上下文中完成。 这些标签在内部存储并按
使用 标签顺序 的风格。

接下来, _标签 被重复调用,没有来自同一个完成的参数
功能。 这会依次选择请求的第一组、第二组等标签
由用户。 如果至少请求了一个标签,则返回状态为零
否则非零。 要测试是否要尝试特定标签, _请求
应该调用函数(见上文)。

如果`-C 姓名' 给出, 姓名 临时存储在参数字段中(第五个)
在上下文的 上下文 调用期间的参数 _标签; 领域是
退出时恢复。 这允许 _标签 使用更具体的上下文而无需
更改和重置 上下文 参数(具有相同的效果)。

_值 [ -O 姓名 [ -s 九月 [ -S 九月 [ -厕所 ] 说明 规格 ...
这用于完成任意关键字(值)及其参数或列表
这样的组合。

如果第一个参数是选项 `-O 姓名',它的使用方式与
_参数 功能。 换句话说,元素 姓名 数组将是
传递给 组合 执行动作时。

如果第一个参数(或 ` 之后的第一个参数-O 姓名') 是`-s', 下一个
参数用作分隔多个值的字符。 这个角色
以可自动移除的方式自动添加到每个值之后(见下文);
由 ` 完成的所有值_值 -s' 在命令行中出现在同一个单词中,
不像完成使用 _参数. 如果此选项不存在,则只有一个
值将按字完成。

通常情况下, _值 将仅使用当前单词来确定哪些值是
已经出现在命令行上,因此不会再次完成。 如果
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 -w 给出了选项,其他参数也会被检查。

第一个非选项参数用作字符串以打印为之前的描述
列出值。

所有其他参数都以相同的方式描述可能的值及其参数
用于描述选项的格式 _参数 功能(见上文)。
唯一的区别是开头不需要减号或加号,
values 只能有一个参数,并且以相等开头的动作形式
不支持符号。

可以使用选项设置将值与其参数分开的字符 -S
(喜欢 -s,后跟用作下一个参数中的分隔符的字符)。
默认情况下,等号将用作值之间的分隔符和
参数。

计费示例:

_值 -s , '描述' \
'*foo[bar]' \
'(二)*一个[数字]:first 数数:' \
'两个[另一个 数]::秒 计数:(1 2 3)'

这描述了三个可能的值:`FOO',`一种',和`'。 第一个是
描述为`酒吧',不带参数并且可能出现多次。 第二个是
描述为`',可能出现不止一次,并且需要一个强制参数
描述为`第一 '; 未指定任何操作,因此不会完成。
`(二)' 开头说如果值 `一种'就行了,值
`' 将不再被视为可能的完成。 最后,最后一个值
(`') 被描述为 `另一个 ' 并接受描述的可选参数
作为`第二 ' 的补全(出现在 `=') 是`1',`2',
和`3'。 的 _值 函数将完成这些值的列表,由
逗号。

喜欢 _参数, 这个函数临时添加另一个上下文名称组件到
执行时当前上下文的 arguments 元素(第五个)
行动. 这里这个名称只是参数所在的值的名称
完成。

风格 详细 用于决定值的描述(但不是
那些用于参数的)应该被打印出来。

关联数组 val_args 用于报告值及其参数; 这
工作原理类似于 选择参数 使用的关联数组 _参数。 因此
函数调用 _值 应该声明本地参数 , 状态描述,
线, 上下文val_args:

本地 上下文 状态描述 线
排版 -A val_args

当使用 ` 形式的动作时->绳子'。 有了这个功能 上下文
参数将设置为要完成其参数的值的名称。
请注意 _值状态描述 是标量而不是数组。
仅返回一个匹配状态。

另请注意 _值 通常添加用作分隔符的字符
值作为可自动删除的后缀(类似于 `/' 在目录之后)。 然而,
这对于 ` 是不可能的->绳子' 动作作为参数的匹配项是
由调用函数生成。 为了获得通常的行为,调用
函数可以添加分隔符 x 通过传递选项作为后缀 `-qS x' 任何一个
直接或间接地 组合.

选项 -C 被以同样的方式对待 _参数. 在那种情况下
参数 上下文 应该本地化而不是 上下文 (如上所述)。

_通缉 [ -x [ -C 姓名 [ -12VJ ] 行李牌 姓名 描述 命令 [ ARG ...]
在许多情况下,完成只能生成一组特定的匹配项,
通常对应一个标签。 但是,仍然需要决定
用户是否需要这种类型的匹配。 这个功能在这样的情况下很有用
情况。

的论据 _通缉 与那些相同 _请求, 即参数是
传递给 _描述. 然而,在这种情况下 命令 不是可选的; 全部
标签的处理,包括标签和标签标签的循环以及
匹配的生成,由自动执行 _通缉.

因此,只提供一个标签并立即添加相应的匹配项
给出描述:

本地 EXPL
_通缉 行李牌 EXPL '描述' \
组合 火柴...

请注意,至于 _请求命令 必须能够接受选项
传给 组合.

喜欢 _标签 此功能支持 -C 选项为
参数上下文字段。 这 -x option 与 for 的含义相同 _描述.

竣工 目录


在源代码分发中,文件包含在
完成 目录。 它们可能安装在同一结构中,或安装在一个结构中
单一功能目录。 以下是对找到的文件的描述
原始目录结构。 如果您想更改已安装的文件,则需要
将它复制到前面出现的某个目录 路径 比标准目录
它出现的地方。

基值 核心功能和特殊完成小部件自动绑定到键。 你
肯定会需要其中的大部分,尽管可能不需要更改它们。
其中许多都记录在上面。

岩组 用于完成 shell 内置命令和实用程序函数的参数的函数
为了这。 其中一些也被以下函数使用 Unix的 目录。

Unix的 用于完成外部命令和命令套件的参数的函数。
它们可能需要针对您的系统进行修改,尽管在许多情况下有些尝试是
用于决定存在哪个版本的命令。 例如,完成
这些因素包括原料奶的可用性以及达到必要粉末质量水平所需的工艺。 安装 命令尝试确定它正在运行的系统,同时完成
对于许多其他实用程序,请尝试确定该命令的 GNU 版本是否在
使用,因此是否 - 帮帮我 支持选项。

X, AIX, BSD...
仅在某些系统上可用的命令的完成和实用功能。 这些
不是按层次排列的,因此,例如, LinuxDebian
目录,以及 X 目录,可能对您的系统有用。

使用 onworks.net 服务在线使用 zshcompsys


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad




×
广告
❤️在这里购物、预订或购买——免费,有助于保持服务免费。