bindings: Allow raw escape sequence to be bound with bind

This commit is contained in:
Jöran Karl
2023-10-11 21:15:20 +02:00
parent 68d88b571d
commit dcc7205699

View File

@@ -634,6 +634,11 @@ func (h *BufPane) ShowCmd(args []string) {
InfoBar.Message(option)
}
func parseKeyArg(arg string) string {
// If this is a raw escape sequence, convert it to its raw byte form
return strings.ReplaceAll(arg, "\\x1b", "\x1b")
}
// ShowKeyCmd displays the action that a key is bound to
func (h *BufPane) ShowKeyCmd(args []string) {
if len(args) < 1 {
@@ -641,7 +646,7 @@ func (h *BufPane) ShowKeyCmd(args []string) {
return
}
event, err := findEvent(args[0])
event, err := findEvent(parseKeyArg(args[0]))
if err != nil {
InfoBar.Error(err)
return
@@ -660,7 +665,7 @@ func (h *BufPane) BindCmd(args []string) {
return
}
_, err := TryBindKey(args[0], args[1], true)
_, err := TryBindKey(parseKeyArg(args[0]), args[1], true)
if err != nil {
InfoBar.Error(err)
}
@@ -673,7 +678,7 @@ func (h *BufPane) UnbindCmd(args []string) {
return
}
err := UnbindKey(args[0])
err := UnbindKey(parseKeyArg(args[0]))
if err != nil {
InfoBar.Error(err)
}