https://github.com/sigoden/argc-completions
欢迎大家使用并反馈意见
1
llh880808 2023-11-22 09:30:26 +08:00
看到任意 shell 就点进来了,第一时间找 csh/tcsh ,果然没有
|
2
sigoden OP @llh880808 你可以发 pr 请求支持啊。https://github.com/tcsh-org/tcsh stars 才 198 。csh 干脆没有自己的 github 仓库。这俩太小众了。
|
3
llh880808 2023-11-22 09:59:32 +08:00
@sigoden 没事,确实是太小众了,csh 系列基本淹没在时代中了,我已经习惯了各种 shell 工具不支持 csh/tcsh 的现实了
不过有可能的话,可以尝试支持一下 tcsh ( csh 没必要,即使是行业内,tcsh 也基本替代了 csh ),不过可能会有困难,因为 tcsh 甚至没有函数。总之,就算不跟 zsh 比,只跟 bash 比,tcsh 都太简陋了,只是行业内默认用它,很难改了 |
4
PaulSamuelson 2023-11-22 10:10:52 +08:00
感觉很不错,比起 zsh-autosuggestions ,提供了更多选择。
|
5
a33291 2023-11-22 11:10:52 +08:00
是否可以完善一下脚本,如果 PATH 里已经有 argc 和 yq,就不要单独下载了.
另外 nushell 好像有自己的完成扩展机制,不太了解当前是如何在 nushell 上实现的?能介绍一下基本的原理吗,谢谢 |
6
sigoden OP @llh880808 近期会添加 tcsh 支持, 敬请期待
@a33291 详见 https://www.nushell.sh/cookbook/external_completers.html nushell 的 argc 补全核心代码如下 ``` def _argc_completer [args: list<string>] { argc --argc-compgen nushell "" $args | split row "\n" | range 0..-2 | each { |line| $line | split column "\t" value description } | flatten } let external_completer = {|spans| _argc_completer $spans } $env.config.completions.external.enable = true $env.config.completions.external.completer = $external_completer ``` |
7
shakukansp 2023-11-22 11:57:00 +08:00
windows 下
./bin/argc shell:setup powershell 提示 shell not found |
8
sigoden OP @shakukansp
windows 下请先确保系统有安装 git ,因为 argc 依赖其内置的 bash. 只要安装了 git ,argc 会自动查找并使用其 bash.exe 或者你可以使用 `ARGC_SHELL_PATH` 手动指定 `bash.exe` 的路径。 |
9
shakukansp 2023-11-22 12:18:47 +08:00
@sigoden 那可能因为我 git 是用 scoop 装的
|
10
sigoden OP @shakukansp 下一版本中 argc 会支持在 scoop 安装的 git 中查找 bash.exe 。目前你只能使用环境变量 `ARGC_SHELL_PATH` 指定`bash.exe` 路径了。
|
11
shakukansp 2023-11-22 12:42:55 +08:00
@sigoden 设置了环境变量没报错了,但是好像没效果,我看了下 $PROFILE 里面也没有相关的命令添加进去
|
12
sigoden OP @shakukansp 建议你去 https://github.com/sigoden/argc/issues/new 上发起 issue 。
|
13
masellum 2023-11-22 13:25:47 +08:00
看着蛮不错,想请教一下和 carapace 的区别是什么?
|
15
sigoden OP @masellum
- argc-completions 支持超过 1000+ 命令,而 carapace-bin 只支持 500+ 命令。 - argc-completions 可以直接调用 `argc generate <your-command>` 为某个命令生成的补全脚本,立即就可以使用。而 carapace-bin 需要编写 go 代码,并等待新版本发布才可以使用。 - argc-completions 更容易跟随命令同步更新补全脚本,只需要重新执行 `argc generate <updated-command>`。而 carapace-bin 则需要手动对比不同点并修改 go 源码。 - argc-completions 支持符号,如 `cargo +<tab>` 或 `java @<tab>`。 - argc-completions 支持短选项组合,如 `tar -xj<tab>` |
17
mjikop1231 2023-11-22 14:25:37 +08:00
https://github.com/microsoft/inshellisense MS 表示我们也有,不过他们只有 600+
|
18
sigoden OP @llh880808 https://github.com/sigoden/argc-completions/pull/10 支持 tcsh ,欢迎体验并反馈意见
|
19
llh880808 2023-11-22 23:39:35 +08:00
@sigoden 大佬厉害了,我刚刚试用了一下,git-bash 环境下没有问题,wsl ubuntu 的 tcsh 下按照 pull/10 的描述遇到点问题,不过我解决了,但最终效果似乎仍不如预期
我打算明天在公司的环境再测试一下,如果结果依旧,我会提个 issue ,尽可能详细描述一下问题 |
20
llh880808 2023-11-23 11:37:59 +08:00
@sigoden 我知道昨天我的问题出在哪里了,我昨天没有把 argc-completions 仓库的分支切到 feat-tcsh ,另外就是虽然 argc 本身代码更新了但 release 的二进制文件还是旧的
我自己搭建 rust 环境重新编译了新的 argc ,现在看起来有效果了 不过我稍微提一下试用中遇到的小问题 执行./script/setup-shell.sh tcsh 后输出的内容直接粘贴到~/.tcshrc 会报错 我修改为如下两行内容后正常 ``` setenv PATH "$ARGC_COMPLETIONS_ROOT/bin:$PATH" # 删除 :前的\ set ARGC_TCSH_SCRIPTS=`ls -p -1 $ARGC_COMPLETIONS_ROOT/completions | sed -n 's/\.sh$//p'` # 删除双引号 ``` (本来想提 issue ,既然主要问题解掉了,这个修改又很小,就这里带一句好了) 非常感谢 OP 能考虑到被时代抛弃的小众需求者的需要 |
21
hljjhb 2023-11-28 12:05:04 +08:00
体验不错,好评!
不过 shell 启动速度减慢还是能感知到 |