diff options
Diffstat (limited to 'internal/client/ui')
| -rw-r--r-- | internal/client/ui/viminput/viminput.go | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/internal/client/ui/viminput/viminput.go b/internal/client/ui/viminput/viminput.go index 5934ed7..e4886a4 100644 --- a/internal/client/ui/viminput/viminput.go +++ b/internal/client/ui/viminput/viminput.go @@ -437,11 +437,18 @@ func (m *Model) handleNormalModeKeys(key tea.KeyMsg) { runeLines = append(runeLines, []rune(line)) } - m.lines = slices.Insert(m.lines, m.cursorLine+1, runeLines...) + if len(line) != 0 { + m.lines = slices.Insert(m.lines, m.cursorLine+1, runeLines...) + m.SetCursorLine(m.cursorLine + 1) + _, col := m.Motion("_") + m.SetCursorColumn(col) + } else { + m.lines[m.cursorLine] = runeLines[0] + m.lines = slices.Insert(m.lines, m.cursorLine+1, runeLines[1:]...) + _, col := m.Motion("_") + m.SetCursorColumn(col) + } - m.SetCursorLine(m.cursorLine + 1) - _, col := m.Motion("_") - m.SetCursorColumn(col) } else { var runeLines [][]rune for _, line := range lines { |
