3 个不稳定版本

0.2.0 2021年2月15日
0.1.1 2021年2月15日
0.1.0 2020年12月5日

#5 in #able

MIT 许可证

7KB
80

computergeneration

computergeneration on crates.io

computergeneration 是一个部分 compgen 替代品,其主要目标是提供不区分大小写的补全,因为 compgen 似乎无法做到这一点。它是用 Rust 编写的,你现在就可以安装它

cargo install computergeneration
$ computergeneration --help
computergeneration 0.2.0
Generates completions based on a word list and a prompt.

Word list is expected to be provided via stdin, and newline-delimited.

USAGE:
    computergeneration.exe [OPTIONS] <pattern>

FLAGS:
    -h, --help
            Prints help information

    -V, --version
            Prints version information


OPTIONS:
        --case <case>
            Case matching strategy to use

            * auto: Case insensitive if pattern is all lowercase
            * sensitive: Always case sensitive
            * insensitive: Always case insensitive [default: auto]

ARGS:
    <pattern>
            Pattern to complete against

基本用法

我有一个类似这样的 Bash 补全脚本,使用了 compgen

# Jump to the machine's projects directory ($PROJ) and optionally a project
# inside it.
function proj() {
	cd "$PROJ/$1"
}

function _proj_complete() {
	COMPREPLY=( $(compgen -W "$(\ls -1 $PROJ)" "${COMP_WORDS[1]}") )
	return 0
}
complete -F _proj_complete proj

我用 computergeneration 替换了它

# Jump to the machine's projects directory ($PROJ) and optionally a project
# inside it.
function proj() {
	cd "$PROJ/$1"
}

function _proj_complete() {
	COMPREPLY=( $(\ls -1 $PROJ | computergeneration "${COMP_WORDS[1]}") )
	return 0
}
complete -F _proj_complete proj

突然,我能够通过 tab 键补全项目名称并进入它们,即使我忘记了它们的命名大小写!

由于我还使用了 fzf-tab-completion,这使它变得不那么有用,但这是一个不错的练习。

这个名称从哪里来?

想象一下,你拼写出了 "comp gen",并使用 tab 补全来完成每个单词...但两次都得到了错误的单词!

许可证

MIT 许可证下发布。有关详细信息,请参阅 LICENSE.txthttp://opensource.org/licenses/MIT

依赖关系

~3MB
~53K SLoC