代码之家  ›  专栏  ›  技术社区  ›  Magnus

Zsh完成资源?

  •  11
  • Magnus  · 技术社区  · 14 年前

    Zsh的完成是一个相当复杂的野兽,我发现手册页很难阅读,特别是它的所有各种optspec表格等(简单)的例子丢失。我还没有设法找到任何在线自己,所以帮助将是非常感谢。

    举个例子,这就是我目前正在努力解决的问题 zshcompsys 手册页没有提供任何澄清。我有

    #compdef mtt2
    
    _arguments -s : \
        '-h' '--help' \
        '-V' '--version' \
        ':foobars:(foo bar baz)'
    

    mtt2 <TAB> 我只被录取了 foo bar baz 作为完成,为什么不呢 -h --help 我需要传递什么魔法 _arguments 为了得到所有的可能性?

    2 回复  |  直到 14 年前
        1
  •  5
  •   ZyX    14 年前

    你需要用破折号(我的意思是你要测试的参数,而不是 _arguments 参数)。你应该看看 zstyle ,尝试通过 -h :foobars: compadd . 示例:

    1. 直接使用compadd:
      #compdef test
      A=( -h --help -V --version foo bar baz )
      compadd -a A
      
    2. 经过 -小时 其他人就像 :食物棒: :
      #compdef test
      A=( -h --help -V --version )
      _arguments \
          - foobars \
          ':foobars:(foo bar baz)' \
          - options \
          ":arguments:($A)"
      
      A=( -h --help -V --version foo bar baz )
      _arguments \
          ":::($A)"
      
    3. Z样式 控制完成样式。在中的“完成系统配置”一节中进行了说明 man zshcompsys 可能有一个选项可以完成开关,但我不知道哪个选项可以控制它。
        2
  •  4
  •   Michael Deardeuff    14 年前

    我发现这是一个很好的介绍: http://www.linux-mag.com/id/1106/

    它在登录墙后面,但你没有指定。。。