code: func (fs *FlagSet) PrintDefaults() {
  	writer := tabwriter.NewWriter(fs.Out(), 20, 1, 3, ' ', 0)
  	home := homedir.Get()
  
  	// Don't substitute when HOME is /
  	if runtime.GOOS != "windows" && home == "/" {
  		home = ""
  	}
  
  	// Add a blank line between cmd description and list of options
  	if fs.FlagCount() > 0 {
  		fmt.Fprintln(writer, "")
  	}
  
  	fs.VisitAll(func(flag *Flag) {
  		names := []string{}
  		for _, name := range flag.Names {
  			if name[0] != '#' {
  				names = append(names, name)
  			}
  		}
  		if len(names) > 0 && len(flag.Usage) > 0 {
  			val := flag.DefValue
  
  			if home != "" && strings.HasPrefix(val, home) {
  				val = homedir.GetShortcutString() + val[len(home):]
  			}
  
  			if isZeroValue(val) {
  				format := "  -%s"
  				fmt.Fprintf(writer, format, strings.Join(names, ", -"))
  			} else {
  				format := "  -%s=%s"
  				fmt.Fprintf(writer, format, strings.Join(names, ", -"), val)
  			}
  			for _, line := range strings.Split(flag.Usage, "\n") {
  				fmt.Fprintln(writer, "\t", line)
  			}
  		}
  	})
  	writer.Flush()
  }
docs: // PrintDefaults prints, to standard error unless configured
  // otherwise, the default values of all defined flags in the set.