【问题标题】:cmdArgs bash completioncmdArgs bash 完成
【发布时间】:2013-05-31 18:06:52
【问题描述】:

Haskell 的cmdArgs package 提供命令选项解析。

基于来自文档http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Explicit.html#g:4 的此页面及其来源http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/src/System-Console-CmdArgs-Explicit-Complete.html#Complete

它似乎能够支持 bash 补全,但我无法让它与解析器的隐式版本一起工作。 http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Implicit.html

有没有人这样做的例子?

编辑添加了一个更好的例子

如果我有程序

{-# LANGUAGE DeriveDataTypeable #-}
import System.Console.CmdArgs

data Sample = Sample {hello :: String}
              deriving (Show, Data, Typeable)

sample = Sample{hello = def}

main = print =<< cmdArgs sample

with 解析以下选项

The sample program

sample [OPTIONS]

Common flags:
  -h --hello=ITEM
  -? --help        Display help message
  -V --version     Print version information

如何使用cmdArgs的bash补全功能?

【问题讨论】:

  • 你能澄清一下你在找什么吗?您链接到的包文档中有一个简短的示例。
  • 我添加了更多信息

标签: haskell autocomplete bash-completion


【解决方案1】:

要使用 bash 补全,请将上述程序编译为 sample,将 sample 放在您的 $PATH 上,然后运行:

sample --help=bash > sample.comp
source sample.comp

您现在可以输入sample --ver,按Tab 键,它将完成到sample --version

在完成过程中存在一些不妥之处,特别是程序必须在您的 $PATH 上,如果您在 Windows 上,则需要运行 sample.compdos2unix。它也完全没有文档记录,应该由包作者修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-01-26
    • 2021-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多