X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=runtime%2Fhelp%2Fkeybindings.md;h=70246e1a5bc6a5a250b03f64ed9dcf32f26a5b03;hb=c29e58e3d4c0d816e961b68af12f21d0570c5806;hp=6588ff6c1594e5afe3aae3ce92d7add1e0e52a0a;hpb=a4ac9f2b7b67bc728968dc86b2d9458b33c7e8b1;p=micro.git diff --git a/runtime/help/keybindings.md b/runtime/help/keybindings.md index 6588ff6c..70246e1a 100644 --- a/runtime/help/keybindings.md +++ b/runtime/help/keybindings.md @@ -1,78 +1,15 @@ # Keybindings -Here are the default keybindings in json form which is also how -you can rebind them to your liking. +Micro has a plethora of hotkeys that make it easy and powerful to use and all +hotkeys are fully customizable to your liking. +Custom keybindings are stored internally in micro if changed with the `>bind` command or +you can also be added in the file `~/.config/micro/bindings.json` as discussed below. +For a list of the default keybindings in the json format used by micro, please see +the end of this file. For a more user-friendly list with explanations of what the default +hotkeys are and what they do, please see `>help defaultkeys` -```json -{ - "Up": "CursorUp", - "Down": "CursorDown", - "Right": "CursorRight", - "Left": "CursorLeft", - "ShiftUp": "SelectUp", - "ShiftDown": "SelectDown", - "ShiftLeft": "SelectLeft", - "ShiftRight": "SelectRight", - "AltLeft": "WordLeft", - "AltRight": "WordRight", - "AltShiftRight": "SelectWordRight", - "AltShiftLeft": "SelectWordLeft", - "CtrlLeft": "StartOfLine", - "CtrlRight": "EndOfLine", - "CtrlShiftLeft": "SelectToStartOfLine", - "CtrlShiftRight": "SelectToEndOfLine", - "CtrlUp": "CursorStart", - "CtrlDown": "CursorEnd", - "CtrlShiftUp": "SelectToStart", - "CtrlShiftDown": "SelectToEnd", - "Enter": "InsertEnter", - "Space": "InsertSpace", - "Backspace": "Backspace", - "Backspace2": "Backspace", - "Alt-Backspace": "DeleteWordLeft", - "Alt-Backspace2": "DeleteWordLeft", - "Tab": "InsertTab,IndentSelection", - "CtrlO": "OpenFile", - "CtrlS": "Save", - "CtrlF": "Find", - "CtrlN": "FindNext", - "CtrlP": "FindPrevious", - "CtrlZ": "Undo", - "CtrlY": "Redo", - "CtrlC": "Copy", - "CtrlX": "Cut", - "CtrlK": "CutLine", - "CtrlD": "DuplicateLine", - "CtrlV": "Paste", - "CtrlA": "SelectAll", - "CtrlT": "AddTab", - "CtrlRightSq": "PreviousTab", - "CtrlBackslash": "NextTab", - "Home": "Start", - "End": "End", - "CtrlHome": "CursorStart", - "CtrlEnd": "CursorEnd", - "PageUp": "CursorPageUp", - "PageDown": "CursorPageDown", - "CtrlG": "ToggleHelp", - "CtrlR": "ToggleRuler", - "CtrlL": "JumpLine", - "Delete": "Delete", - "Esc": "ClearStatus", - "CtrlB": "ShellMode", - "CtrlQ": "Quit", - "CtrlE": "CommandMode", - "CtrlW": "NextSplit", - - // Emacs-style keybindings - "Alt-f": "WordRight", - "Alt-b": "WordLeft", - "Alt-a": "StartOfLine", - "Alt-e": "EndOfLine", - "Alt-p": "CursorUp", - "Alt-n": "CursorDown" -} -``` +If `~/.config/micro/bindings.json` does not exist, you can simply create it. +Micro will know what to do with it. You can use the alt keys + arrows to move word by word. Ctrl left and right move the cursor to the start and end of the line, and @@ -95,6 +32,9 @@ following in the `bindings.json` file. } ``` +In addition to editing your `~/.config/micro/bindings.json`, you can run +`>bind ` For a list of bindable actions, see below. + You can also chain commands when rebinding. For example, if you want Alt-s to save and quit you can bind it like so: @@ -104,6 +44,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 @@ -130,6 +75,8 @@ WordRight WordLeft SelectWordRight SelectWordLeft +MoveLinesUp +MoveLinesDown DeleteWordRight DeleteWordLeft SelectToStartOfLine @@ -141,6 +88,7 @@ Delete Center InsertTab Save +SaveAs Find FindNext FindPrevious @@ -176,7 +124,13 @@ AddTab PreviousTab NextTab NextSplit +Unsplit +VSplit +HSplit PreviousSplit +ToggleMacro +PlayMacro +UnbindKey ``` Here is the list of all possible keys you can bind: @@ -305,9 +259,98 @@ Tab Esc Escape Enter -Backspace2 ``` +# Default keybinding configuration. + +```json +{ + "Up": "CursorUp", + "Down": "CursorDown", + "Right": "CursorRight", + "Left": "CursorLeft", + "ShiftUp": "SelectUp", + "ShiftDown": "SelectDown", + "ShiftLeft": "SelectLeft", + "ShiftRight": "SelectRight", + "AltLeft": "WordLeft", + "AltRight": "WordRight", + "AltShiftRight": "SelectWordRight", + "AltShiftLeft": "SelectWordLeft", + "AltUp": "MoveLinesUp", + "AltDown": "MoveLinesDown", + "CtrlLeft": "StartOfLine", + "CtrlRight": "EndOfLine", + "CtrlShiftLeft": "SelectToStartOfLine", + "CtrlShiftRight": "SelectToEndOfLine", + "CtrlUp": "CursorStart", + "CtrlDown": "CursorEnd", + "CtrlShiftUp": "SelectToStart", + "CtrlShiftDown": "SelectToEnd", + "Enter": "InsertNewline", + "Space": "InsertSpace", + "CtrlH": "Backspace", + "Backspace": "Backspace", + "Alt-CtrlH": "DeleteWordLeft", + "Alt-Backspace": "DeleteWordLeft", + "Tab": "IndentSelection,InsertTab", + "Backtab": "OutdentSelection", + "CtrlO": "OpenFile", + "CtrlS": "Save", + "CtrlF": "Find", + "CtrlN": "FindNext", + "CtrlP": "FindPrevious", + "CtrlZ": "Undo", + "CtrlY": "Redo", + "CtrlC": "Copy", + "CtrlX": "Cut", + "CtrlK": "CutLine", + "CtrlD": "DuplicateLine", + "CtrlV": "Paste", + "CtrlA": "SelectAll", + "CtrlT": "AddTab", + "Alt,": "PreviousTab", + "Alt.": "NextTab", + "Home": "StartOfLine", + "End": "EndOfLine", + "CtrlHome": "CursorStart", + "CtrlEnd": "CursorEnd", + "PageUp": "CursorPageUp", + "PageDown": "CursorPageDown", + "CtrlG": "ToggleHelp", + "CtrlR": "ToggleRuler", + "CtrlL": "JumpLine", + "Delete": "Delete", + "CtrlB": "ShellMode", + "CtrlQ": "Quit", + "CtrlE": "CommandMode", + "CtrlW": "NextSplit", + "CtrlU": "ToggleMacro", + "CtrlJ": "PlayMacro", + + // Emacs-style keybindings + "Alt-f": "WordRight", + "Alt-b": "WordLeft", + "Alt-a": "StartOfLine", + "Alt-e": "EndOfLine", + "Alt-p": "CursorUp", + "Alt-n": "CursorDown", + + // Integration with file managers + "F1": "ToggleHelp", + "F2": "Save", + "F3": "Find", + "F4": "Quit", + "F7": "Find", + "F10": "Quit", + "Esc": "Escape", +} +``` + +#Final notes +Note: On some old terminal emulators and on Windows machines, `CtrlH` should be used +for backspace. + Additionally, alt keys can be bound by using `Alt-key`. For example `Alt-a` or `Alt-Up`. Micro supports an optional `-` between modifiers like `Alt` and `Ctrl` so `Alt-a` could be rewritten as `Alta` (case matters for alt bindings). This is