code: func (v *View) breakLine(x, y int) error {
  	v.tainted = true
  
  	x, y, err := v.realPosition(x, y)
  	if err != nil {
  		return err
  	}
  
  	if y < 0 || y >= len(v.lines) {
  		return errors.New("invalid point")
  	}
  
  	var left, right []cell
  	if x < len(v.lines[y]) { // break line
  		left = make([]cell, len(v.lines[y][:x]))
  		copy(left, v.lines[y][:x])
  		right = make([]cell, len(v.lines[y][x:]))
  		copy(right, v.lines[y][x:])
  	} else { // new empty line
  		left = v.lines[y]
  	}
  
  	lines := make([][]cell, len(v.lines)+1)
  	lines[y] = left
  	lines[y+1] = right
  	copy(lines, v.lines[:y])
  	copy(lines[y+2:], v.lines[y+1:])
  	v.lines = lines
  	return nil
  }
docs: // breakLine breaks a line of the internal buffer at the position corresponding
  // to the point (x, y).