问题标签 [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 回答
755 浏览

zsh - Git Repo 目录中的 Zsh 慢

我正在使用 zsh shell,在 Git Repo 的目录中运行任何命令(例如 'ls' 'cd' )变得非常缓慢。在 bash 中,它工作得又快又好。我还注意到 shell 的标题显示“git”,旁边有旋转轮。似乎在执行“ls”、“cd”之后调用了“git”,并没有将控制权交还给它,并且变得非常缓慢……而且很痛苦:)

我升级了最新的Git 2.1.2,zsh 5.0.7。我在 Mac 10.9.2 上

您将如何对 zsh shell 进行故障排除?谢谢你的帮助

0 投票
0 回答
871 浏览

macos - OSX 上的 ZSH:cd ~ 和 ~/ Tab 补全问题

目前在 OSX (10.10.3) 上使用 ZSH 和 prezto,我遇到了标签完成问题。在键入以下任一内容后,我总是能够按 Tab 键:

我会得到一个目录菜单,其中包含我的用户主文件夹的内容。
出于某种原因,在点击标签后我得到:

这是键入cd ~/并按 Tab的结果

我尝试禁用 autonamedirs 和 cdablevars。还重新安装了 prezto 并尝试使用 /usr/local/bin/zsh 这是 homebrew 安装的最新 zsh。

非常感谢一些帮助,谢谢

编辑 #1
分离输出并在下面添加 prezto 配置。

.zpreztorc

哪个_cd

0 投票
0 回答
62 浏览

zsh - 提供 zsh 完成选项的描述?

我正在完成我拥有的 shell 程序,我希望能够为完成提供元数据描述

例如

而如果选择了“foo”,那么补全的结果会选择“foo”

不确定如何执行此操作或查看哪些功能?有没有人有什么建议?

0 投票
3 回答
3351 浏览

git - git 添加自动完成文件名

我正在做一个 git 项目。由于我有很多文件夹深度,我想改进我的自动完成以使用文件名而不仅仅是路径。

这是一个例子:

我显然必须添加一个文件:

git add app/src/main/java/fr/pasteque/client/BaseFlavor.java

但我希望能够写:git add BaseFlavor.java

git add **/BaseFlavor.java作品!

但是完成,就像git add **/Base<tab>,不..

任何想法如何完成?

提前致谢!

0 投票
1 回答
876 浏览

zsh - Zsh:如何在一组字符之后强制文件完成?

我试图弄清楚如何word在一组字符之后让文件完成在命令行的任何位置工作。如 shell 中所列,这些字符将是[ =+-\'\"()](空格是制表符和空格)。Zsh 会这样做,但只能在反引号字符 '`' 或$(. mksh 执行此操作,除非不在 characters 之后[+-]

通过命令行上的单词位置,我说的是您输入的每组字符,这些字符由空格和一些其他字符分隔。例如,

print Hello World,

words在位置 1-3有3 个。在位置 1,当您第一次输入内容时,完成非常完美。在我提到的所有字符之后,文件完成工作。在第一个之后word,完成系统变得更加智能,因为它变得更加智能。这对命令很有用,但限制文件完成的位置并不是特别有用。

以下是文件完成对我不起作用但我认为应该的一些示例:

: ${a:=/...}

echo "${a:-/...}"

make LDFLAGS+='-nostdlib /.../crt1.o /.../crti.o ...'

env a=/... b=/... ...

我已经查看了'^I'使用 Zsh 附带的几个不同的完成小部件重新绑定(选项卡)并更改了我的zstyle ':completion:*'行。到目前为止,没有任何工作可以改变这个默认的 Zsh 行为。我在想我需要创建一个完成功能,我可以将其添加到zstyle ':completion:*' completer ...行尾作为最后的完成。

在完成功能中,一种方法是剪掉word我想要完成的当前,完成它,然后如果可能的话,将完成重新插入到行中。它也可能更像_precommand是将第二个转移word到第一个word,以便正常的命令完成工作。

我能够进行修改_precommand,以便您可以在任何word位置完成命令。这是新文件,我将其命名_commando并将其目录添加到我的 fpath 中:

为了使用它,我将它添加到':completion:*' completer ...我的 zshrc 中的行尾,以便它适用于$path. 基本上word,您输入的任何内容都被视为 first word,因此命令完成在word命令行的每个位置都有效。

我试图找出一种方法来完成文件完成,但乍一看它看起来有点复杂。我真的不知道该去哪里,所以我希望得到一些帮助。

0 投票
0 回答
807 浏览

zsh - Zsh CASE_SENSITIVE 什么都不做

我用区分大小写的文件系统安装了我的 Mac。

一切都很好,除了 Zsh 不像以前那么流畅。我已经确认 Oh-My-Zsh 变量在.zshrcCASE_SENSITIVE中被注释掉了,但是在使用选项卡自动完成时仍然无法找到不同情况的文件夹。

我已确认CASE_SENSITIVE未设置:

这是一个错误,还是我只是错过了什么?

0 投票
1 回答
91 浏览

zsh - zsh 完成 - 列出某些 mime 类型的文件

我正在为图像查看器应用程序编写一个自动完成脚本。有没有办法指定只列出目录中具有特定 mime 的文件?即,所有类型的 mime image

我现在在做什么:

_arguments -C \ ... # Handle flags '*:images:_files -g "{*.jpg,*.png}"'

为所有图像类型扩展它会有点混乱。

0 投票
1 回答
85 浏览

zsh - 填写表格选项——

我正在尝试为 fsharpi(F# 交互式)编写一个完成方法,它具有如下选项:

我猜这必须使用$state来处理,类似于sub-commands,但是文档是单一的,并且语言不是很具有描述性,所以我没有通过实验和拼接不同的示例来获得任何结果。

对此的解决方案也适用于 aspell,它使用等号而不是冒号,例如

0 投票
1 回答
743 浏览

mercurial - zsh中mercurial的分支名称自动完成

我对 zsh 感到非常兴奋,但我遇到了一个大问题。

自动完成对hg update我不起作用。我确实zsh_completion 在我的文件中包含了文件(来自最新的 mercurial 源),.zshrc如下所示(移动到主目录后):

但这似乎不起作用。我打字hg up def<tab>,但没有完成。

我也试过rm -f ~/.zcompdump; compinit了,也没有用。我正在使用zsh 5.1.1 (x86_64-apple-darwin15.0.0)oh-my-zsh

我的实际.zshrc

0 投票
0 回答
379 浏览

zsh-completion - 长列表的 zsh 完成 last_prompt 行为

我目前使用以下配置我的 zsh 选项卡完成:

我喜欢这个的是:

  1. 明确的完成立即完成
  2. 模棱两可的补全被尽可能地扩展(标签的第一次罢工)并且歧义被列出给我(第二次罢工)
  3. 进一步点击标签(列表出现后再点击一个标签)我通过菜单选择,即提示停留在歧义列表上方,其中一个被突出显示并插入到提示中,然后进一步点击标签,我转到下一项。即使在无法显示歧义列表的情况下,提示下方的列表也会滚动。

我不喜欢的:

  • 如果列表太长而无法显示,它首先会被完全打印出来,提示最终会出现在列表下方,只有在下一个笔划时,我才会再次出现在终端顶部以进行菜单选择模式。

所以我想将行为更改为:

  1. 明确的完成立即完成
  2. 模棱两可的补全被尽可能扩展(第一次敲击选项卡),歧义总是在提示下方列出,即使列表太长而无法完全显示(无论是第一次还是第二次敲击都无关紧要)
  3. 进一步点击标签(列表出现后再点击一个标签)我通过菜单选择,即提示停留在歧义列表上方,其中一个被突出显示并插入到提示中,然后进一步点击标签,我转到下一项。即使在无法显示歧义列表的情况下,提示下方的列表也会滚动。

一个关键方面是歧义列表在第一个插入提示之前显示。否则我已经可以使用