diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-12-08 22:51:53 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-12-08 22:51:53 +0200 |
| commit | 2a6f5c2c3da36413b519403c953ff2d2f2f7b4eb (patch) | |
| tree | 89bb7b6bf7df044be35cc29aaff9d6e793014fad /internal/client/ui/viminput | |
| parent | bca8e44586d87ee028b70d057d13d01a0fdf8562 (diff) | |
Added C and fixed pasting in viminput
Diffstat (limited to 'internal/client/ui/viminput')
| -rw-r--r-- | internal/client/ui/viminput/viminput.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/internal/client/ui/viminput/viminput.go b/internal/client/ui/viminput/viminput.go index bc281c3..1b23c84 100644 --- a/internal/client/ui/viminput/viminput.go +++ b/internal/client/ui/viminput/viminput.go @@ -232,6 +232,9 @@ func (m *Model) handleNormalModeKeys(key tea.KeyMsg) { m.SetCursorColumn(m.cursorColumn - 1) } } + case "C": + m.mode = InsertMode + fallthrough case "D": line := m.lines[m.cursorLine] if len(line) != 0 { @@ -258,7 +261,14 @@ func (m *Model) handleNormalModeKeys(key tea.KeyMsg) { line := m.lines[m.cursorLine] if len(lines) == 1 { pastedLine := []rune(lines[0]) - m.lines[m.cursorLine] = slices.Insert(line, m.cursorColumn+1, pastedLine...) + if m.cursorColumn+1 >= len(line) { + m.lines[m.cursorLine] = append(line, pastedLine...) + } else { + m.lines[m.cursorLine] = slices.Insert(line, m.cursorColumn+1, pastedLine...) + } + if len(line) == 0 { + m.SetCursorColumn(m.cursorColumn - 1) + } m.SetCursorColumn(m.cursorColumn + len(pastedLine)) } case "P": |
