问题标签 [zsh-completion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
zsh - 除了模棱两可的选择之外,永远不要完成
我试图弄清楚如何自定义 zsh 完成,以便它永远不会通过点击选项卡来完成超出模棱两可的结果。这是一个例子。
重要的是,如果我在“emacs foo”之后按 TAB,我希望 zsh 发出哔哔声而不是完整进入菜单。
谢谢。
zsh - ZSH:按名称制表子目录中的完整文件
我希望能够在 zsh 中键入文件名,点击选项卡,然后在我当前目录的任何子目录中查看与该名称匹配的文件列表。然后我可以通过标签浏览这些结果并按回车键选择某个文件,就像内置的 zsh 标签完成功能一样。
示例所需的功能:
如果这不是当前的功能,我假设我可以编写一个自定义完成脚本来实现它。
git - 如何将自定义 git 命令添加到 zsh 完成?
我已经阅读了一些关于 zsh 完成的指南,但我仍然感到困惑。在我们的开发环境中,我们有一个名为git new-branch
. 我希望 zsh 在输入 justgit ne
和 a后自动为我完成它Tab。我怎样才能做到这一点?
zsh - 使用“windows like”选项自动完成命令(以斜杠开头)
我正在尝试为 zsh(或 bash)编写一个自定义自动完成脚本,该脚本具有以斜杠开头的选项。
例如:MyCommand /foo=bar.txt /yolo=test /final=4
我一直在尝试使用 zsh 帮助_arguments
程序,但它没有用:
但是当我用它替换/
它--
时效果很好。
我怎样才能做到这一点?
shell - ZSH 自动完成提供特定文件夹中文件的完整路径
我正在尝试为从特定文件夹获取文件参数的自定义可执行文件编写一个自动完成功能。
$ ./my_executable <tab>
应该提供文件夹中的文件/home/me/argument_files
。
我得到了它的工作:
compdef '_files -W /home/me/argument_files' my_executable
问题是我需要将参数文件的完整路径提供给my_executable
. 这仅提供$ /home/me/my_executable file1
而不是
$ /home/me/my_executable /home/me/argument_files/file1
.
我该怎么做呢?
zsh - 如何将“”添加到zsh中的路径
基本上,我想这样做,如果我运行一个命令,说
它将用"~/Library/Application Support/"
这完全可能吗?我也希望它适用于我的.zshrc
.
谢谢
zsh - Oh my zsh - 从完成结果中排除小部件
我真的很喜欢 zsh 中的 AUTOCD 选项,但小部件名称使其使用起来不太舒服。问题是,例如,当我在我的主目录中时,键入“down”并按 Tab,我希望“Downloads”完成,但自动完成的第一个位置是“down-line-or-beginning-search”。下载是第二步,这导致我必须另外按两次 tab。它使这个过程不太符合人体工程学。有人知道如何从 zsh 自动完成中排除小部件名称吗?
zsh-completion - 如何找出用于 zsh 选项卡完成的函数
我想知道 zsh 使用哪个函数来完成命令的制表符。对于许多命令(make
, ls
, cd
...),我显然可以猜到_<COMMANDNAME>
,但实际上我可能已经用compdef _mycd cd
.
我想知道这个的原因有两个:
- 我可能想阅读一些函数定义以在我正在编写的函数中使用它们的一部分
- 我想编写一个完成函数,它本身调用其他命令的完成(就像一个在 中所做的那样
_nice
,除了我可能不依赖的例外shift; CURRENT--; _normal
)
zsh - zsh自动补全,第二个参数基于第一个
我需要自动完成一个函数的两个参数,其中第二个参数取决于第一个参数。
一个例子:函数“foo”的第一个参数可以有“a”或“b”的值。如果第一个参数是“a”,则第二个参数可以具有值“10”或“11”,如果第一个参数是“b”,则可以具有值“20”和“21”。所以下面的参数组合是合法的:
这些组合是预先知道的(它们可以被硬编码)。
zsh 完成系统文档非常晦涩难懂,而且很棒的How To也没有解决我的问题。最接近的是使用_arguments
,可能与状态操作一起使用,但我没有设法使其工作。
zsh-completion - 第一个参数是子命令或带有值的标志
我正在为 swift 工具(编译器和包管理器)编写一个 zsh 完成脚本。此命令可与或不指定子命令一起使用。例如
到目前为止,我有以下完成脚本。它大部分都有效,但是对于裸呼叫,自动完成功能并不完全正常。它确实进入了 _compiler 方法,但在swift -a
. 它会自动完成,就好像它已经忘记了-a
. 所以swift -a <TAB><TAB>
应该显示选择1-2-3的菜单;但它显示了一个文件列表。因为swift -a -a <TAB><TAB>
它显示了正确的完成,但重复-a
是无效的。
它可能与已更改的状态有关,而对于此特定用例则不应该。但是对于子命令(构建和测试),应更改状态以使其各自的完成正常工作。
我已经阅读了文档,但它非常神秘。我检查了其他各种完成脚本,但无法找出丢失的链接。那么如何为具有可选子命令的命令指定完成,这些子命令具有单独的标志集(并且本身也具有子子命令)?