func moveDotDown(ed *Editor, k Key) *leReturn { eol := strutil.FindFirstEOL(ed.line[ed.dot:]) + ed.dot if eol == len(ed.line) { ed.beep() return nil } nextSOL := eol + 1 nextEOL := strutil.FindFirstEOL(ed.line[nextSOL:]) + nextSOL sol := strutil.FindLastSOL(ed.line[:ed.dot]) width := WcWidths(ed.line[sol:ed.dot]) ed.dot = nextSOL + len(TrimWcWidth(ed.line[nextSOL:nextEOL], width)) return nil }
func killLineRight(ed *Editor, k Key) *leReturn { eol := strutil.FindFirstEOL(ed.line[ed.dot:]) + ed.dot ed.line = ed.line[:ed.dot] + ed.line[eol:] return nil }
func moveDotEnd(ed *Editor, k Key) *leReturn { ed.dot = strutil.FindFirstEOL(ed.line[ed.dot:]) + ed.dot return nil }