在 Linux 上在哪里放置 zsh 自动完成脚本?

Édo*_*pez 9 linux ubuntu zsh zsh-completion oh-my-zsh

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

迄今为止

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

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

那么在Linux上在哪里放置zsh​​自动完成脚本?

Amo*_*mod 14

让我尝试在这里提供帮助。

我正在尝试类似的事情,这就是我能够使其发挥作用的方式。oh-my-zsh以下解决方案已在 debian 发行版 [ubuntu] 上验证

问题

  > 你的 zsh 没有给出正确的完成建议 [conda]
  > 这是当你输入 # conda 时得到的结果tab

在此输入图像描述

解决方案

  1. 找到补全脚本

    一个很好的位置是https://github.com/clarketm/zsh-completions/tree/master/src

  2. 将文件下载到完成文件夹[~/.oh-my-zsh/completions]

      > Your zsh isnt giving proper completion suggestions say [conda]
      > This is what you get when you type in # conda tab
    
  3. 确保完成文件夹列在 $fpath 下

    wget https://raw.githubusercontent.com/clarketm/zsh-completions/master/src/_conda ~/.oh-my-zsh/completions
    
    Run Code Online (Sandbox Code Playgroud)
    1. 如果它没有列出怎么办它应该正常添加 .oh-my-zsh.sh 如果没有附加到 ~/.oh-my-zsh/oh-my-zsh.sh

      print -l $fpath
      
      Run Code Online (Sandbox Code Playgroud)
    2. 源.zshrc

      # add a function path
      fpath=($ZSH/functions $ZSH/completions $fpath)
      
      Run Code Online (Sandbox Code Playgroud)
  4. 执行compinit此命令将为~/.zcompdump函数构建文件

    source ~/.zshrc
    
    Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

故障排除

  1. 由于冲突,建议可能不会显示,请尝试以下操作

    compinit
    
    Run Code Online (Sandbox Code Playgroud)
  2. 尝试源码.zshrc

    rm -f ~/.zcompdump; compinit
    # we are clearing the function dump stored by zsh, its safe zsh will rebuilt it.
    
    Run Code Online (Sandbox Code Playgroud)
  3. 尝试注销并登录

  4. 检查映射~/.zcompdump

    source ~/.zshrc
    
    Run Code Online (Sandbox Code Playgroud)

    搜索康达

    [/conda]

    你应该看到如下所示

    'conda' '_conda'

希望有人会觉得它有用,如果有的话很乐意提供帮助


小智 13

我通过将cheat.zsh 添加到~/.oh-my-zsh/plugins 目录来使其工作。zsh 检查以在 FPATH 上自动加载函数,因此请尝试:

echo $FPATH
Run Code Online (Sandbox Code Playgroud)

然后添加到 FPATH 或将文件移动到路径上的文件夹中。

这实际上在解释它方面做得更好:https : //unix.stackexchange.com/questions/33255/how-to-define-and-load-your-own-shell-function-in-zsh