#shell #config-file #command-line-tool #script #completion #file-line #zsh

app autocshell

autocshell 是一个命令行工具,可以帮助您为您的工具和 shell 生成自动完成脚本

2 个版本

0.5.3 2020 年 11 月 9 日
0.5.2 2020 年 11 月 6 日
0.4.0 2020 年 9 月 16 日
0.3.0 2020 年 9 月 15 日
0.1.4 2020 年 6 月 30 日

命令行工具 中排名 2928

每月下载量 45

GPL-2.0 许可

32KB
942

autocshell

autocshell 是一个命令行工具,可以生成您可以在其中使用以提供命令行程序自动完成功能的 shell 文件/脚本。

此程序可以生成各种 shell(目前仅为 bash 和 zsh)的脚本,而不仅仅是 c-shell(不要因为名称中包含 auto-cshell 而混淆)。

autocshell 仅需要创建一个简单的配置文件作为输入。要检查配置文件格式,请使用 autocshell 的 --config-help 标志运行。

默认情况下,autocshell 将脚本打印到标准输出,因此您可以将其输出重定向到您喜欢的任何文件,但通过提供 --output 选项,程序可以为您完成此操作 :)

配置文件

您必须提供的输入配置文件(使用 -c 或 --config 选项)具有以下格式

shell:        <shell_type> (bash|zsh)
program_name: <program_name>
use_equals_sign: (true|false) [default: true] (available only for zsh) 
option*:
    short?: <short_name> _
                          |-> At least one should exist
    long?:  <long_name>  ‾
    accepts_value?:       (true|false) [default: true]  (available only for zsh)
    accepts_files?:       (true|false) [default: false]
    accepts_multiple?:    (true|false) [default: false] (available only for zsh)
    description?:
    fixed_values?:        [<fixed_value>, ...]

字段/值说明

字段:shell
值:您要为其生成脚本的 shell。
必填:是

字段:program_name
值:您要为其生成自动完成的程序的名称
必填:是

字段:use_equals_sign
值:表示我们是否希望在选项完成后添加等号(=)。这仅适用于 zsh。
默认值:true
必填:否

字段:option
值:无。选项字段没有值。它开始新的选项定义
必填:否

字段:short
值:短选项描述(必须包含 -)
必填:否*

字段:long
值:长选项描述(必须包含 --)
必填:否*

字段:accepts_value
值:表示此选项是否接受选项(它是一个标志)。这仅适用于 zsh。
默认值:true
必填:否

字段:accepts_files
值:表示该选项是否接受文件/目录作为值。必须是 true 或 false
默认值:false
必填:否

字段:accepts_multiple
值:此值表示选项是否可以在 cli 中多次出现。这仅适用于 zsh。
默认值:false
必填:否

字段:description
值:此值包含在自动完成此选项时显示的描述。这仅适用于 zsh。
必填:否

字段:fixed_values
值:此值是一个用方括号和逗号分隔的固定值列表,该列表将自动完成该选项。这仅在 zsh 中有效。
必填:否

短字段和长字段不是必需的,但是如果您定义了一个选项,至少必须存在其中之一。

将完成添加到shell

加载和注册程序自动完成函数的推荐方法是创建一个文件夹,在该文件夹中您将保存所有生成的文件。
然后,在您的初始化shell脚本中,您可以添加以下内容:

AUTOCOMPLETE_DIR=/path/to/dir
for f in$(find ${AUTOCOMPLETE_DIR} -name "*.<shell_name>");
do source $f;
done

当然,循环可能需要根据shell的可接受语法进行调整。

Bash

对于bash,您不需要做任何事情,只需像上面那样source文件即可。

Zsh

对于zsh,您必须已运行compinit,否则compdef将失败。
如果您使用oh-my-zsh,这将在.zshrc文件中完成,在oh-my-zsh.sh被source的行。

依赖关系

~750KB