标签: zsh-completion

ZSH中的文件完成优先级

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

zstyle ':completion:*' file-patterns \ 
    '%p:globbed-items' \
    '*(^-/):regular-files' \
    '*(^-/):boring-files' \
    '.*(^-/):hidden-files' \
    '*(-/):regular-directories' \
    '*(-/):boring-directories' \
    '.*(-/):hidden-directories'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我的每个组的范围也受适用的约束ignore-patterns.(这样boring-files只包含无聊的文件,regular-files不包含枯燥的文件)

我希望总是出现大胆的项目,如果没有其他匹配项,则只显示其他项目.(Aka.touch <tab>将显示常规目录和常规文件,但不显示隐藏文件,同时touch .<tab>将显示隐藏文件.)

  • 全球物品
  • 目录
    • 常规目录
    • 无聊的目录
    • 隐藏的目录
    • 常规文件
    • 无聊的文件
    • 隐藏文件

linux zsh zsh-completion

5
推荐指数
1
解决办法
412
查看次数

如何列出所有zsh自动完成?

在zsh中,我试图了解哪些命令具有现有的完成,以便我可以为不能执行的命令编写完成.

有没有办法列出zsh将完成的命令而无需点击完成文件?例如,是否有一个内置命令会列出它们?

shell zsh autocomplete tab-completion zsh-completion

5
推荐指数
1
解决办法
1456
查看次数

zsh可以像vim的搜索一样完成smartcase的完成吗?

Vim具有“智能大小写”功能,使搜索不区分大小写,但前提是搜索包含所有小写字母。在搜索任何大写字母时,smartcase会假定您要区分大小写。有没有办法在zsh的制表符完成中获得相同的行为?

zsh zsh-completion

4
推荐指数
1
解决办法
549
查看次数

从脚本提示符完成 ZSH(如 BASH 的 read -e)

在 bash shell 脚本中,您可以提示用户输入并使用该-e标志为用户启用 readline 完成。(例如read -e -p 'GET YOUR FILE: ' file,允许用户使用制表符完成来查找文件。)

ZSH 的完成更加先进且可扩展,因此我希望我能够找到一个允许类似行为的 zsh 内置函数。

bash zsh bash-completion zsh-completion

4
推荐指数
1
解决办法
640
查看次数

zsh:强制单选项卡完成

我最近从 bash 切换到 zsh。如何实现以下选项卡完成行为:

输入第一个字母,然后按TAB。完成输入直到第一个不明确的字母并立即显示选项/替代方案。

目前,它的行为是这样的:

# ls .m*
  .mysql_history  .matlab  .matplotlib  .mono  .mozilla
# cd .m<TAB>
  .matlab/  .matplotlib/  .mono/  .mozilla/
# cd .mo<TAB>
  .mono/  .mozilla/
# cd .ma<TAB><TAB> (here two tabs are necessary: the first one completes to .mat, 
                    the second one show .matlab and .matplotlib)
Run Code Online (Sandbox Code Playgroud)

在最后一种情况下,我想去掉第二个选项卡。zshs 完成系统可以做到这一点吗?

这是我的当前.zshrc

HISTFILE=~/.histfile
HISTSIZE=10000
SAVEHIST=1000

# Options
setopt autocd

# Aliases
alias ls='ls --color -h --group-directories-first'
alias ll='ls -laF --color -h --group-directories-first'
alias la='ls -A --color -h --group-directories-first' …
Run Code Online (Sandbox Code Playgroud)

zsh zshrc zsh-completion

4
推荐指数
1
解决办法
1456
查看次数

zsh:显示完成组名称

我正在编写一些 zsh 补全,但我一直在思考如何拥有多组补全。

-J我使用参数docs添加了组名称。

compadd -J group1 "$@" completion1 completion2
compadd -J group2 "$@" completion3 completion4
Run Code Online (Sandbox Code Playgroud)

然后我将其添加zstyle到我的~/.zshrc 文档中(标题group-name:)

zstyle ':completion:*' group-name ''
Run Code Online (Sandbox Code Playgroud)

完成情况正常,但组名称未显示。我究竟做错了什么?

zsh zsh-completion

4
推荐指数
1
解决办法
1629
查看次数

如何找出 zsh tab 补全使用哪个函数

我想知道 zsh 使用哪个函数来完成命令的制表符。\n对于许多命令(makelscd\xe2\x80\xa6),我显然可以猜测_<COMMANDNAME>,但实际上我可能已经用 覆盖了此设置compdef _mycd cd

\n\n

我想知道这个问题的原因有两个:

\n\n
    \n
  1. 我可能想阅读一些函数定义,以便在我正在编写的函数中使用其中的一部分
  2. \n
  3. 我想编写一个完成函数,它本身调用其他命令的完成(就像在 中所做的那样_nice,但我可能不依赖shift; CURRENT--; _normal
  4. \n
\n

zsh-completion

4
推荐指数
1
解决办法
304
查看次数

如何在zsh中为Azure CLI启用命令完成功能?

我发现有关Azure CLI(az命令)的bash [1]可用命令完成的提示,但是我没有找到有关如何为zsh安装/启用该命令的任何指示。如果可能的话,有人知道该怎么做吗?如果相关,我使用oh-my-zsh。

[1] https://docs.microsoft.com/zh-cn/cli/azure/get-started-with-azure-cli?view=azure-cli-latest#finding-commands

zsh azure zsh-completion azure-cli

4
推荐指数
4
解决办法
3928
查看次数

bash和zsh之间的单词向前/向后分隔符区别

被 macOS Catalina 拖入 21 世纪,现在默认为它的 shellzsh而不是bash它的 shell,我试图恢复一些 bash 的行编辑行为。具体来说,如果我在行尾:

bash$ ls /foo/bar/baz
Run Code Online (Sandbox Code Playgroud)

然后我按 Alt-左箭头键,光标跳到“baz”,然后是“bar”,然后是“foo”。与大多数环境(例如 Safari 和使用 Cocoa 文本编辑功能的应用程序)一样,它将斜杠视为单词分隔符。

zsh,当我尝试做同样的事情时,第一个 Alt-Left Arrow 将光标一直跳回到“/foo/bar/baz”的开头,这使得它对于直接编辑 long 的部分不太有用.

这可以在zsh中配置吗?如果是这样,如何?

bash zsh zsh-completion

4
推荐指数
1
解决办法
201
查看次数

使用 ZSH 进行历史智能搜索的哪个按键绑定?

iTerm 2在终端( on )中使用向上和向下箭头时Mac OS Catalina,我可以使用向上和向下箭头浏览最后的命令。

我使用ZSHOh-my-zsh准确地说),如果我输入 例如vim然后按向上键,它将浏览我的历史记录以查找以 开头的任何命令vim

我觉得必须将手移到箭头键上很烦人,所以我想绑定ctrl-jctrl-k上下浏览。

我看着bindkey并绑定^jdown-history^kup-history。这允许我浏览我的历史记录,但不能使用“智能”功能(我不确定这里的术语是否正确) - 它只是在我的历史记录中上下移动,而不考虑我的输入。

我已经浏览了手册上的标准小部件Zsh Line Editor,但我找不到正确的命令。

我应该绑定哪个命令^j^k获得我想要的结果?

zsh zsh-completion

3
推荐指数
1
解决办法
2274
查看次数