cmdArgs bash完成 [英] cmdArgs bash completion

查看:164
本文介绍了cmdArgs bash完成的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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/src/System-Console-CmdArgs-Explicit- Complete.html#Complete



它似乎能够支持bash完成,但我无法使用Implicit版本的解析器。 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 =示例{hello :: String}
deriving(Show,Data,Typeable)

sample = Sample {hello = def}

main = print =<<< ; cmdArgs示例

分析以下选项



<$示例程序

示例[选项]

常用标志:
-h --hello = ITEM
- ? --help显示帮助信息
-V --version打印版本信息

如何使用cmdArgs的bash完成特性?

解决方案

要使用bash完成,请将上面的程序编译为 sample ,在 $ PATH 上放置 sample ,然后运行:

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

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



完成时有一些不足之处,尤其是程序必须位于 $ PATH 中,如果您在Windows上,则需要运行 sample.comp dos2unix 。它也完全没有记录,它应该由软件包作者修复。


The cmdArgs package for Haskell provide command option parsing.

based on this page from the docs http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Explicit.html#g:4 and its source http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/src/System-Console-CmdArgs-Explicit-Complete.html#Complete

It seem able to support bash completion, but I was not able to made it work with the Implicit version of the parser. http://hackage.haskell.org/packages/archive/cmdargs/0.10.3/doc/html/System-Console-CmdArgs-Implicit.html

Does any one have any example of doing this?

Edit added a better example

if I have the program

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

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

sample = Sample{hello = def}

main = print =<< cmdArgs sample

with parses the following options

The sample program

sample [OPTIONS]

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

how do use the bash completion feature of cmdArgs?

解决方案

To use the bash completion, compile the above program as sample, place sample on your $PATH then run:

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

You can now type in sample --ver, press tab, and it will complete to sample --version.

There are a couple of infelicities in the completion, in particular the program must be on your $PATH and if you are on Windows you need to run sample.comp through dos2unix. It is also entirely undocumented, which sHould be fixed by the package author.

这篇关于cmdArgs bash完成的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆