3 个不稳定版本
0.2.0 | 2021年2月15日 |
---|---|
0.1.1 | 2021年2月15日 |
0.1.0 | 2020年12月5日 |
#5 in #able
7KB
80 行
computergeneration
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.txt 或 http://opensource.org/licenses/MIT。
依赖关系
~3MB
~53K SLoC