Compare commits

..

2 Commits

Author SHA1 Message Date
Renzix 0ebd8d9035
feat: added alt backspace keybinding (#132)
Co-authored-by: Renzix <DanielDeBruno@renzix.com>
2022-03-29 22:15:23 -04:00
Renzix 52caedc1f1
feat: delete key on st and fix: delete key crash on xterm (#131)
* fix: delete key on st

* fix: delete key crash on xterm

Co-authored-by: Renzix <DanielDeBruno@renzix.com>
2022-03-29 20:35:51 -04:00
2 changed files with 32 additions and 14 deletions

View File

@ -39,18 +39,20 @@ const (
// Escape sequences // Escape sequences
var ( var (
seqUp = string([]byte{27, 91, 65}) seqUp = string([]byte{27, 91, 65})
seqDown = string([]byte{27, 91, 66}) seqDown = string([]byte{27, 91, 66})
seqForwards = string([]byte{27, 91, 67}) seqForwards = string([]byte{27, 91, 67})
seqBackwards = string([]byte{27, 91, 68}) seqBackwards = string([]byte{27, 91, 68})
seqHome = string([]byte{27, 91, 72}) seqHome = string([]byte{27, 91, 72})
seqHomeSc = string([]byte{27, 91, 49, 126}) seqHomeSc = string([]byte{27, 91, 49, 126})
seqEnd = string([]byte{27, 91, 70}) seqEnd = string([]byte{27, 91, 70})
seqEndSc = string([]byte{27, 91, 52, 126}) seqEndSc = string([]byte{27, 91, 52, 126})
seqDelete = string([]byte{27, 91, 51, 126}) seqDelete = string([]byte{27, 91, 51, 126})
seqShiftTab = string([]byte{27, 91, 90}) seqDelete2 = string([]byte{27, 91, 80})
seqAltQuote = string([]byte{27, 34}) // Added for showing registers ^[" seqShiftTab = string([]byte{27, 91, 90})
seqAltR = string([]byte{27, 114}) // Used for alternative history seqAltQuote = string([]byte{27, 34}) // Added for showing registers ^["
seqAltR = string([]byte{27, 114}) // Used for alternative history
seqAltBackspace = string([]byte{27, 127})
) )
const ( const (

View File

@ -712,12 +712,15 @@ func (rl *Instance) escapeSeq(r []rune) {
rl.updateHelpers() rl.updateHelpers()
return return
case seqDelete: case seqDelete,seqDelete2:
if rl.modeTabFind { if rl.modeTabFind {
rl.backspaceTabFind() rl.backspaceTabFind()
} else { } else {
rl.deleteBackspace(true) if (rl.pos < len(rl.line)) {
rl.deleteBackspace(true)
}
} }
case seqHome, seqHomeSc: case seqHome, seqHomeSc:
if rl.modeTabCompletion { if rl.modeTabCompletion {
return return
@ -752,6 +755,19 @@ func (rl *Instance) escapeSeq(r []rune) {
rl.updateTabFind([]rune{}) rl.updateTabFind([]rune{})
rl.viUndoSkipAppend = true rl.viUndoSkipAppend = true
case seqAltBackspace:
if rl.modeTabCompletion {
rl.resetVirtualComp(false)
}
// This is only available in Insert mode
if rl.modeViMode != VimInsert {
return
}
rl.saveToRegister(rl.viJumpB(tokeniseLine))
rl.viDeleteByAdjust(rl.viJumpB(tokeniseLine))
rl.updateHelpers()
default: default:
if rl.modeTabFind { if rl.modeTabFind {
return return