问题标签 [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.

0 投票
1 回答
389 浏览

ruby - 使用 ruby​​ gem 命令工具完成 zsh/bash

我创建了一个命令行 ruby​​ gem 并希望有 bash 或 zsh 完成。我创建了它们并对其进行了版本控制,但我必须手动获取它们。

是否有在 gem 安装后执行脚本的常用方法,例如编辑 bashrc 或 zshrc 并添加源命令?

0 投票
7 回答
52881 浏览

git - Git选项卡完成在mac上的zsh中不起作用

无论我尝试做什么,我似乎都无法在我的 zsh shell 中使 git tab/auto completion 工作。我已经下载了 bash-completion 脚本和 zsh-completion 脚本并按照说明进行操作,但我无法使其工作。

我已经重新安装了 oh-my-zsh,但这似乎没有帮助或产生任何影响。

任何可以正常工作的人都可以向我描述他们的设置,以便我可以尝试模拟它以使其为我工作吗?

具体来说,到目前为止我所做的是:

没运气。

0 投票
1 回答
118 浏览

linux - 通过 zsh 中的参数抑制更正

假设我有文件树

这样做mv a_test_file1 a_test_file2会导致烦人的更正查询。mv永远不应该更正第二个参数,因为它可能指向文件系统上的现有节点,也可能不指向。但是,第一个参数可能会被更正,因为它必须始终是有效节点。

这是一个常见的用例,我只想zsh更正命令中的某些参数。我怎样才能做到这一点?

0 投票
1 回答
582 浏览

linux - ZSH 中的文件完成优先级

我有一个 shell 模式,将一些文件标记为“无聊”,即备份文件、pyo文件、vim 备份、自动生成的目录等。让我们称之为$BORING_STUFF

在这种情况下,我的每个组的范围也受到了适用的限制ignore-patterns。(如boring-files只包含无聊文件,regular-files不包含无聊文件)

我希望总是显示粗体项目,而其他项目只有在没有其他匹配项时才会显示。(又名。touch <tab>将显示常规目录和常规文件,但不显示隐藏文件,而touch .<tab>将显示隐藏文件。)

  • 全局项目
  • 目录
    • 常规目录
    • 无聊的目录
    • 隐藏目录
  • 文件
    • 常规文件
    • 无聊的文件
    • 隐藏文件
0 投票
1 回答
120 浏览

zsh - 在 zsh 完成中保持状态

我想为具有以下调用约定的程序编写 zsh 完成:

……其中operation之一--install在哪里--upgrade

到目前为止,我所拥有的是一般选项和操作选项。我的代码看起来像这样:

问题是,在我键入操作和第一个操作选项后,状态会重置为*)案例。

例子

如何将下一个状态设置为与旧状态相同?哪个命令有类似的调用约定,所以我可以看一下这个命令的补全代码?

0 投票
1 回答
842 浏览

bash - 实现 zsh 别名的自动补全

我正在使用很棒的 zsh 框架oh-my-zsh。每天我都打gc,这是我打的别名git commit<Tab><Tab>它给了我正确的文件来提交。我真的很想知道它是如何实现的,所以我可以实现自己的想法,即使用别名导航到子目录。

我的意思是导航到~/workspace/a-repo使用这个别名-w a<Tab><Tab>,它完成a-repo并给了我一些建议,这些建议是里面的文件夹~/workspace。我已经创建了这个别名,但我需要知道如何为其添加正确的自动完成/建议。

这是我的别名:

0 投票
1 回答
762 浏览

linux - zsh 下划线常用补全前缀

我见过像这个zsh.org 线程和这个Reddit 线程这样的东西,它们展示了如何用颜色突出显示完成的公共前缀。不幸的是,这覆盖了LS_COLORS我设置的。我从我那里获得了很多信息,LS_COLORS如果可能的话,我希望他们不要管。相反,我宁愿使用带下划线的公共前缀(保留颜色)。

像这样

像这样,但用下划线而不是颜色

但是用下划线代替颜色,让我LS_COLORS完好无损。

编辑:

我有一个可能的解决方案,但它需要能够list-colors为不同的标签(不是组)指定不同的。我们将每种类型的文件(符号链接、管道等)放入它自己的标签中,并有一个包含所有文件的组。

0 投票
0 回答
81 浏览

git - zsh git 补全提供了与当前前缀不同的参数

输入 zsh

优惠

所以有完全超出当前类型前缀的补全。我该如何解决?

我的完成配置是:

0 投票
1 回答
1580 浏览

autocomplete - 如何在 oh-my-zsh 下强制完成文件名?

问题:

有时,当我尝试在 zsh 中执行操作时,它不会完成我想要的文件名,因为它们不适用于当前上下文。两个例子:

  1. 我想强制添加一个当前在 hg 或 git 中被忽略的文件。oh-my-zsh 试图通过仅完成未忽略的文件来帮助我,但在这种情况下,这是一个障碍。我被迫手动输入文件的完整路径。
  2. 我想用来git diff区分我硬盘上的两个任意文件。这些文件不驻留在任何存储库中,但谁在乎呢?!git diff --no-index是区分任何两个文件的一种非常好的方法。但是因为它们不在仓库中,所以 zsh 不会完成它们。

建议的解决方案:

可以简单地编辑源代码控制上下文以完成所有文件名,而不管它们的源代码控制状态如何。但是有几个限制:

  1. 我不知道该怎么做。
  2. 拥有一个“逃生舱”可能会很好,无论上下文如何,我都可以强制文件完成。

所以,我决定改为绑定一个快捷键来强制正常的、无上下文的文件完成。

到目前为止我所拥有的:

Zsh 显然有一种简单的方法可以做到这一点,如本问题所述。所以我在我的中添加了以下几行.zshrc

这会导致shift-tab启动文件完成。它在标准 zsh 中运行良好!但是嘘,由于某种原因,当我获取 oh-my-zsh 时它不起作用。:-(

那么有没有办法让它与 oh-my-zsh 一起工作,或者有没有我可能会觉得令人满意的替代解决方案?

0 投票
2 回答
12573 浏览

linux - 在 Linux 上哪里可以放置 zsh 自动完成脚本?

安装后cheat(命令行中的命令备忘单),我尝试使用提供的 zsh 脚本启用自动完成功能。但是,我似乎没有找到脚本的正确位置。

至今

  • 我拿cheat.zsh;
  • 将其复制到~/.oh-my-zsh/custom/plugins/cheat/_cheat.zsh
  • 添加作弊添加到我的plugins数组中~/.zshrc
  • 重新加载我的外壳。

键入时不会自动完成cheat d<TAB>

问题

那么在Linux上将zsh自动补全脚本放在哪里呢?