问题标签 [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 投票
0 回答
172 浏览

zsh - zsh完成缓存安全模型坏了?

这可能是 zsh 中的错误或错误功能,但我不太了解,我可能会误解。

compinit(初始化完成的函数)运行compaudit以强制执行一个安全模型,它只会从您的目录中加载完成函数,这些目录$fpath被认为是“安全的”(由 root 或我拥有,而不是世界可写等)。它将警告用户有关不安全的路径并提示跳过它们或中止它们。这一切都很好。

它在 处创建结果缓存~/.zcompdumpAFAICT,它只是手动失效(即删除)。

我不完全清楚缓存中有什么,所以我不能说这是否真的是一个很大的安全问题。但是,至少,compinit即使缓存由其他用户拥有,也会认为缓存有效,从而避免加载对当前用户有效但前一个用户无效的完成函数。

每次我使用sudo -s我拥有的 zsh 安装(OS X 自制软件)时,都会发生这种情况。它写入一个不完整的完成缓存。然后我开始下一个shell,它加载了被破坏的缓存并且没有看到任何完成。

这是我的问题吗?ZSH的?家酿?

0 投票
0 回答
287 浏览

bash - ZSH Symfony 控制台自动补全

我正在尝试为 Symfony 的控制台创建一个 ZSH 自动完成脚本,我几乎完成了它,但我在最后一部分阻止了它。由于函数返回,我需要创建一个数组,但我不知道如何处理。这是我写的代码:

如果我执行命令行,它会以正确的方式对其进行格式化。但与 ZSH 一起使用时,输出是这样的:

格式化函数返回:

未显示的单词用作命令完成。这是一个示例:Asciinema 示例

如果我将返回值直接用于数组中,则效果很好。

0 投票
0 回答
234 浏览

zsh-completion - ZSH 完成:首先显示文件夹

如何为选项卡上的文件夹组提供最高优先级完成?现在,在完成期间(cd前面没有),几乎所有内容都放在文件夹名称之前,因此为了进入文件夹而遍历系统命令、函数等有点烦人。我zstyle.zshrc.

例子: 在此处输入图像描述

0 投票
0 回答
334 浏览

zsh - 更改特定目录的 Zsh 文件完成顺序

当我在我的下载目录上使用 Zsh 文件完成时,如果它显示按修改时间排序的文件将会很有用。

此命令将对所有文件完成执行此操作:

zstyle ':completion:*' file-sort modification

我如何将其仅应用于 中的文件~/Downloads

编辑:正如 Gilles 所暗示的那样,这是不可能的,我可以将另一个键绑定到文件完成file-sort modification吗?

0 投票
1 回答
126 浏览

zsh - 来自 2 个路径的 ZSH 文件完成

我有 2 个包含文件夹的文件夹

我想为命令创建完成功能,baz以便

$ baz [tab]

给出完成参数如下

注意重复c只写了一次,它不包括斜杠。

我知道如何完成,_files但这只会给我来自单个目录的文件。

我怎么做?

0 投票
1 回答
1874 浏览

linux - zsh compinit: insecure directories. Compaudit shows /tmp directory

I'm running zsh on a Raspberry Pi 2 (Raspbian Jessie). zsh compinit is complaining about the /tmp directory being insecure. So, I checked the permissions on the directory:

Apparently anyone can do anything in the /tmp directory. Which makes sense, given it's purpose. So I tried the suggestions on this stackoverflow question. I also tried similar suggestions on other sites. Specifiacally, it suggests turning off group write permissions on that directory. Because of how the permissions looked according to ls -ld, I had to turn off the 'all' write permissions as well. So:

This shut zsh up. However, other programs started to break. For example, gnome-terminal would crash whenever I typed the letter 'l'. Because of this, I had to turn the write permissions back on, and just run compinit -u in my .zshrc.

What I want to know: is there any better way to fix this? I'm not sure that it's a great idea to let compinit use an insecure directory. My dotfiles repo is hosted here, and the file where I now run compinit -u is here.

0 投票
1 回答
621 浏览

autocomplete - 如何使 zsh 自动完成故障转移到 compdef _files

我需要使用以下方法获取 ssh 密钥的指纹:

键入后:ssh-keygen -lf ~/.ss TAB它没有提供任何选项。

我必须做:

之后,我可以使用文件路径自动完成,但命令自动完成停止工作,所以如果我输入,ssh-keygen - Tab我不会再看到这个输出:

所以想知道是否有一种方法可以启用这两个选项,以便我可以执行以下操作:

ssh-keyg TAB这会给我:

那我可以做

$ ssh-keygen - TAB

这将打印选项菜单并可以执行以下操作:

$ ssh-keygen -lf ~/.ss TAB

并列出可以工作的选项列表,所以最后我会得到类似的东西:

现在我只是添加到我的~/.zshrc这个:

但是我必须为要使用 _files 完成的 avery 命令执行此操作,因此我想知道是否有办法始终使用_files或故障转移到它。

有任何想法吗?

有没有可能让它表现得像cshCtrl+d显示文件选项的地方一样?

更新:

我注意到如果我最后一个参数是-f自动完成工作:

ssh-keygen -l -f ~/.sshTAB

但是对于自定义脚本,命令什么功能,小部件别名可以帮助强制_files完成。?

0 投票
0 回答
75 浏览

zsh - zsh完成忽略列表?

我的 .zshrc 设置如下:

在一个目录中,我有两个文件:Cc 和 C_1.c。如果我做

我明白了

如果我再做一次,它会完成

所以,我的问题是,为什么 C_1.c 完全被忽略了?当我按下 bash 时,如何让 zsh 像 bash 一样提示选择 C*?

谢谢

0 投票
8 回答
27363 浏览

zsh - Zsh Docker 插件不工作

我已经使用 oh-my-zsh 一段时间了,最​​近由于某种原因,docker 插件停止了对我的工作。

我检查了我的 ~/.zshrc 文件并包含该插件

plugins=(git colored-man colorize github jira vagrant virtualenv pip python brew osx zsh-syntax-highlighting docker)

我检查了~/.oh-my-zsh/plugins/docker目录,里面有一个_docker文件。然而,当我键入docker并按 Tab 时,我没有得到以前得到的自动完成快捷方式。

我可以确认我的git插件工作正常但不是docker插件。尝试做exec zshsource ~/.zshrc重新启动我的终端,但没有运气。

我错过了什么吗?

0 投票
1 回答
311 浏览

bash - 像别名一样使用 bash 函数 + grc 会破坏 Zsh 完成

我正在使用 grc / grcat 使用此功能为终端输出着色:

但这破坏了我在 .zshrc 中使用 oh-my-zsh 设置的 zsh 完成和插件:

例如,当我尝试使用docker stop时,ANSI 转义序列将完成:$'\033'\[0m$'\033'\[1m$'\033'\[33mhigh_wright$'\033'\[0m

有没有办法避免这种情况并仅过滤那些转义序列以完成?

编辑

我在 .oh-my-zsh 目录中为 docker 插件找到了这个文件:https ://github.com/robbyrussell/oh-my-zsh/blob/master/plugins/docker/_docker

我知道我需要更改此功能,但我不知道如何更改。