diff --git a/cmd/micro/bindings.go b/cmd/micro/bindings.go index 8098f61b..8cfe01c5 100644 --- a/cmd/micro/bindings.go +++ b/cmd/micro/bindings.go @@ -347,8 +347,19 @@ func BindKey(k, v string) { if v == "ToggleHelp" { helpBinding = k } - + if helpBinding == k && v != "ToggleHelp" { + helpBinding = "" + } + actionNames := strings.Split(v, ",") + if actionNames[0] == "UnbindKey" { + delete(bindings, key) + if len(actionNames) == 1 { + actionNames = make([]string, 0, 0) + } else { + actionNames = append(actionNames[:0], actionNames[1:]...) + } + } actions := make([]func(*View, bool) bool, 0, len(actionNames)) for _, actionName := range actionNames { actions = append(actions, findAction(actionName)) diff --git a/cmd/micro/statusline.go b/cmd/micro/statusline.go index 7e646bfc..e339cf19 100644 --- a/cmd/micro/statusline.go +++ b/cmd/micro/statusline.go @@ -36,9 +36,12 @@ func (sline *Statusline) Display() { // Add the filetype file += " " + sline.view.Buf.FileType() - rightText := helpBinding + " for help " - if sline.view.Type == vtHelp { - rightText = helpBinding + " to close help " + rightText := "" + if len(helpBinding) > 0 { + rightText = helpBinding + " for help " + if sline.view.Type == vtHelp { + rightText = helpBinding + " to close help " + } } statusLineStyle := defStyle.Reverse(true) diff --git a/runtime/help/keybindings.md b/runtime/help/keybindings.md index 2dd494d0..ee9d1f11 100644 --- a/runtime/help/keybindings.md +++ b/runtime/help/keybindings.md @@ -115,6 +115,11 @@ and quit you can bind it like so: } ``` +# Unbinding keys + +It is also possible to disable any of the default key bindings by use of the +`UnbindKey` action in the user's `bindings.json` file. + # Bindable actions and bindable keys The list of default keybindings contains most of the possible actions and keys @@ -196,6 +201,7 @@ HSplit PreviousSplit ToggleMacro PlayMacro +UnbindKey ``` Here is the list of all possible keys you can bind: