docs: function getOptions(conf) {
    var parts = [];
    if(!conf.expansions && !conf.flags) {
      return parts;
    }
    var start = conf.start, end = conf.end;
    var sre = /^-[a-zA-Z0-9]$/, lre = /^--/;
    var chars = '';
    var lng = [];
    var opts = this.cmd._options, z, arg, names, i, options = [];
    for(z in opts) {
      arg = opts[z];
      if(arg.isFlag()) {
        names = arg.names();
        for(i = 0;i < names.length;i++) {
          if(conf.expansions && sre.test(names[i])) {
            chars += names[i].substr(1);
          }else if(conf.flags && !conf.combine && lre.test(names[i])) {
            lng.push(start + names[i] + end);
          }
        }
        if(conf.combine) {
          if(conf.no) {
            names = flutil.getNoExpansions(names);
          }
          lng.push(start + names.join('|') + end);
        }
      }else if(arg.isOption()){
        if(conf.options) {
          options.push(start + getOptionValue(arg, conf) + end);
        }
      }
    }
    var expansions = chars.length ? start + HYPHEN + chars + end : '';
    var commands = Object.keys(this.cmd._commands).length > 0;
    if(commands && conf.command && conf.prepend) {
      parts.push(conf.scommand
        + this.messages.usage.command + conf.ecommand);
    }
    if(expansions) {
      parts.push(expansions);
    }
    if(lng.length) {
      parts.push(lng.join(' '));
    }
    if(options.length) {
      parts.push(options.join(' '));
    }
    if(commands && conf.command && !conf.prepend) {
      parts.push(conf.scommand
        + this.messages.usage.command + conf.ecommand);
    }
    if(conf.args) {
      parts.push(conf.sargs
        + this.messages.usage.args + conf.eargs);
    }
    return parts;
  }