diff --git a/readline/line.go b/readline/line.go index 2030143..5b3b282 100644 --- a/readline/line.go +++ b/readline/line.go @@ -176,3 +176,9 @@ func (rl *Instance) deleteToBeginning() { rl.line = rl.line[rl.pos:] rl.pos = 0 } + +func (rl *Instance) deleteToEnd() { + rl.resetVirtualComp(false) + // Keep everything before the cursor + rl.line = rl.line[:rl.pos] +} diff --git a/readline/readline.go b/readline/readline.go index 70724d4..aa752b5 100644 --- a/readline/readline.go +++ b/readline/readline.go @@ -189,6 +189,16 @@ func (rl *Instance) Readline() (string, error) { rl.resetHelpers() rl.updateHelpers() + case charCtrlK: + if rl.modeTabCompletion { + rl.resetVirtualComp(true) + } + // Delete everything after the cursor position + rl.saveBufToRegister(rl.line[rl.pos:]) + rl.deleteToEnd() + rl.resetHelpers() + rl.updateHelpers() + case charBackspace, charBackspace2: // When currently in history completion, we refresh and automatically // insert the first (filtered) candidate, virtually