summaryrefslogtreecommitdiff
path: root/internal
diff options
context:
space:
mode:
Diffstat (limited to 'internal')
-rw-r--r--internal/client/ui/core/frequencylist/frequencylist.go1
-rw-r--r--internal/client/ui/viminput/viminput.go24
2 files changed, 24 insertions, 1 deletions
diff --git a/internal/client/ui/core/frequencylist/frequencylist.go b/internal/client/ui/core/frequencylist/frequencylist.go
index b7bbd8c..14807ba 100644
--- a/internal/client/ui/core/frequencylist/frequencylist.go
+++ b/internal/client/ui/core/frequencylist/frequencylist.go
@@ -1,7 +1,6 @@
package frequencylist
import (
- "log"
"strings"
tea "github.com/charmbracelet/bubbletea"
diff --git a/internal/client/ui/viminput/viminput.go b/internal/client/ui/viminput/viminput.go
index 86fcda6..7f1a248 100644
--- a/internal/client/ui/viminput/viminput.go
+++ b/internal/client/ui/viminput/viminput.go
@@ -5,6 +5,7 @@ import (
"strings"
"unicode"
+ "github.com/atotto/clipboard"
tea "github.com/charmbracelet/bubbletea"
"github.com/charmbracelet/lipgloss"
"github.com/kyren223/eko/internal/client/config"
@@ -438,6 +439,13 @@ func (m *Model) handleNormalModeKeys(key tea.KeyMsg) {
m.mode = VisualLineMode
m.vline = m.cursorLine
m.vcol = m.cursorColumn
+ case "ctrl+a":
+ m.mode = VisualLineMode
+ m.vline = 0
+ m.vcol = 0
+ m.SetCursorLine(len(m.lines) - 1)
+ line := m.lines[m.cursorLine]
+ m.SetCursorColumn(len(line) - 1)
case "d":
fallthrough
@@ -609,6 +617,22 @@ func (m *Model) handleInsertModeKeys(key tea.KeyMsg) {
return
}
+ if key.Type == tea.KeyCtrlV {
+ clipboard, err := clipboard.ReadAll()
+ if err != nil {
+ return
+ }
+ paste := m.Paste()
+ m.Yank(clipboard)
+ m.handleNormalModeKeys(tea.KeyMsg{
+ Type: tea.KeyRunes,
+ Runes: []rune{'P'},
+ Alt: false,
+ Paste: false,
+ })
+ m.Yank(paste)
+ }
+
if key.Type == tea.KeyTab || key.Type == tea.KeyShiftTab {
conf := config.Read()
var runes []rune