mirror of
https://github.com/zyedidia/micro.git
synced 2026-02-07 07:30:20 +09:00
bindings: Allow raw escape sequence to be bound with bind
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user