6

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

基于文档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/System-Console-CmdArgs-Explicit.html#g:4 /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 补全功能?

4

1 回答 1

5

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

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

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

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

于 2013-07-08T16:25:27.163 回答