From 8b4da0058e898a62059609df83c02eeb015e9d02 Mon Sep 17 00:00:00 2001 From: c-bata Date: Thu, 10 Aug 2017 01:26:32 +0900 Subject: [PATCH] Add some keybind --- prompt.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/prompt.go b/prompt.go index 944e59e..5639084 100644 --- a/prompt.go +++ b/prompt.go @@ -103,13 +103,29 @@ func (p *Prompt) feed(b []byte) (shouldExit bool, exec *Exec) { if exec.input != "" { p.history.Add(exec.input) } + case ControlA: + x := []rune(p.buf.Document().TextBeforeCursor()) + p.buf.CursorLeft(len(x)) + case ControlE: + x := []rune(p.buf.Document().TextAfterCursor()) + p.buf.CursorRight(len(x)) + case ControlK: + x := []rune(p.buf.Document().TextAfterCursor()) + p.buf.Delete(len(x)) + case ControlU: + x := []rune(p.buf.Document().TextBeforeCursor()) + p.buf.DeleteBeforeCursor(len(x)) case ControlC: p.renderer.BreakLine(p.buf) p.buf = NewBuffer() p.completion.Reset() p.history.Clear() case ControlD: - shouldExit = true + if p.buf.Text() == "" { + shouldExit = true + } else { + p.buf.Delete(1) + } case Up: if !p.completion.Completing() { if newBuf, changed := p.history.Older(p.buf); changed {