diff --git a/cmd/micro/bindings.go b/cmd/micro/bindings.go index b537a9e1..3059ab3d 100644 --- a/cmd/micro/bindings.go +++ b/cmd/micro/bindings.go @@ -346,14 +346,21 @@ func BindKey(k, v string) { if v == "ToggleHelp" { helpBinding = k } - - actionNames := strings.Split(v, ",") - actions := make([]func(*View, bool) bool, 0, len(actionNames)) - for _, actionName := range actionNames { - actions = append(actions, findAction(actionName)) + if helpBinding == k && v != "ToggleHelp" { + helpBinding = "" } + + if v == "UnbindKey" { + delete(bindings, key) + } else { + actionNames := strings.Split(v, ",") + actions := make([]func(*View, bool) bool, 0, len(actionNames)) + for _, actionName := range actionNames { + actions = append(actions, findAction(actionName)) + } - bindings[key] = actions + bindings[key] = actions + } } // DefaultBindings returns a map containing micro's default keybindings 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: