首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在zshell中获得最热的自动完成

在zshell中获得最热的自动完成
EN

Stack Overflow用户
提问于 2019-01-04 18:33:09
回答 1查看 759关注 0票数 1

这个问题可能更适合超级用户--如果是这样的话,让我知道,我会改变它。

我使用zsh并经常从命令行运行pytest。一个非常常见的情况是,我需要运行一个特定的测试(或者一个类的子测试)。

前者看起来有点像

pytest test/test_foo_file.py::test_foo_function

而后者就像

pytest test/test_foo_file.py::FooClassTest::test_specific_functionality

写出完整的类和测试名称是一种痛苦,而这似乎是某种自动完成或模糊搜索的成熟工具。通过我发现的研究,我无法做到这一点--有人有什么建议吗?

如果我能说得更具体点,请告诉我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-05 01:20:09

免责声明:我不是zsh用户,但这种方法与bash完成的自定义非常相似:

  1. 创建一个自定义完成文件,例如 $ mkdir ~/..zsh完备性$ touch ~/..zsh完备/_pytest
  2. ~/.zsh-completions/_pytest中,编写完成函数: #compdef pytest _pytest_complete() { local curcontext="$curcontext“状态行排版-A opt_args compadd "$@”$( pytest --只读-q head -n -2) } _pytest_complete "$@“
  3. 调整.zshrc以包括自定义完成,例如。 Fpath=(~/..zsh completions $fpath) autoload -U compinit compinit zstyle ':completion:*‘menu select=2

重新启动外壳。现在,您应该在选项卡完成时获得单个测试选择:

这里的关键命令是

代码语言:javascript
复制
$ pytest --collect-only -q | head -n -2

它收集当前目录中的测试,并列出它们的名称,以便作为命令行参数传递。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54044327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档