func Substr(data string, visible text.RegionSet) string { b := bytes.NewBuffer(nil) for _, r := range visible.Regions() { b.WriteString(data[r.A:r.B]) } return b.String() }