]> git.lizzy.rs Git - micro.git/commitdiff
Change ctrl-arrow default binding for non-Mac OSes
authorZachary Yedidia <zyedidia@gmail.com>
Tue, 21 Jan 2020 03:35:00 +0000 (22:35 -0500)
committerZachary Yedidia <zyedidia@gmail.com>
Tue, 21 Jan 2020 03:35:00 +0000 (22:35 -0500)
On non-Mac operating systems, the default for CtrlLeft/CtrlRight
is now WordLeft and WordRight instead of moving the cursor to the
start and end of lines (now rebound to Alt-Left/Right by default).
Default keybindings are unchanged on Mac.

Fixes #1465

internal/action/bindings.go
internal/action/defaults_darwin.go [new file with mode: 0644]
internal/action/defaults_other.go [new file with mode: 0644]

index 8984c043b17802f37d6570f907cd52125d7ecd16..be75fd0ce91683123e17b5f6a9c3f9f2e7690bc8 100644 (file)
@@ -386,107 +386,3 @@ var keyEvents = map[string]tcell.Key{
        "PgUp":   tcell.KeyPgUp,
        "PgDown": tcell.KeyPgDn,
 }
-
-// DefaultBindings returns a map containing micro's default keybindings
-func DefaultBindings() map[string]string {
-       return map[string]string{
-               "Up":             "CursorUp",
-               "Down":           "CursorDown",
-               "Right":          "CursorRight",
-               "Left":           "CursorLeft",
-               "ShiftUp":        "SelectUp",
-               "ShiftDown":      "SelectDown",
-               "ShiftLeft":      "SelectLeft",
-               "ShiftRight":     "SelectRight",
-               "AltLeft":        "WordLeft",
-               "AltRight":       "WordRight",
-               "AltUp":          "MoveLinesUp",
-               "AltDown":        "MoveLinesDown",
-               "AltShiftRight":  "SelectWordRight",
-               "AltShiftLeft":   "SelectWordLeft",
-               "CtrlLeft":       "StartOfLine",
-               "CtrlRight":      "EndOfLine",
-               "CtrlShiftLeft":  "SelectToStartOfLine",
-               "ShiftHome":      "SelectToStartOfLine",
-               "CtrlShiftRight": "SelectToEndOfLine",
-               "ShiftEnd":       "SelectToEndOfLine",
-               "CtrlUp":         "CursorStart",
-               "CtrlDown":       "CursorEnd",
-               "CtrlShiftUp":    "SelectToStart",
-               "CtrlShiftDown":  "SelectToEnd",
-               "Alt-{":          "ParagraphPrevious",
-               "Alt-}":          "ParagraphNext",
-               "Enter":          "InsertNewline",
-               "CtrlH":          "Backspace",
-               "Backspace":      "Backspace",
-               "Alt-CtrlH":      "DeleteWordLeft",
-               "Alt-Backspace":  "DeleteWordLeft",
-               "Tab":            "Autocomplete|IndentSelection|InsertTab",
-               "Backtab":        "CycleAutocompleteBack|OutdentSelection|OutdentLine",
-               "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",
-               "CtrlPageUp":     "PreviousTab",
-               "CtrlPageDown":   "NextTab",
-               "CtrlG":          "ToggleHelp",
-               "Alt-g":          "ToggleKeyMenu",
-               "CtrlR":          "ToggleRuler",
-               "CtrlL":          "command-edit:goto ",
-               "Delete":         "Delete",
-               "CtrlB":          "ShellMode",
-               "CtrlQ":          "Quit",
-               "CtrlE":          "CommandMode",
-               "CtrlW":          "NextSplit",
-               "CtrlU":          "ToggleMacro",
-               "CtrlJ":          "PlayMacro",
-               "Insert":         "ToggleOverwriteMode",
-
-               // 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
-               "F2":  "Save",
-               "F3":  "Find",
-               "F4":  "Quit",
-               "F7":  "Find",
-               "F10": "Quit",
-               "Esc": "Escape",
-
-               // Mouse bindings
-               "MouseWheelUp":   "ScrollUp",
-               "MouseWheelDown": "ScrollDown",
-               "MouseLeft":      "MousePress",
-               "MouseMiddle":    "PastePrimary",
-               "Ctrl-MouseLeft": "MouseMultiCursor",
-
-               "Alt-n": "SpawnMultiCursor",
-               "Alt-m": "SpawnMultiCursorSelect",
-               "Alt-p": "RemoveMultiCursor",
-               "Alt-c": "RemoveAllMultiCursors",
-               "Alt-x": "SkipMultiCursor",
-       }
-}
diff --git a/internal/action/defaults_darwin.go b/internal/action/defaults_darwin.go
new file mode 100644 (file)
index 0000000..7780021
--- /dev/null
@@ -0,0 +1,105 @@
+package action
+
+// DefaultBindings returns a map containing micro's default keybindings
+func DefaultBindings() map[string]string {
+       return map[string]string{
+               "Up":             "CursorUp",
+               "Down":           "CursorDown",
+               "Right":          "CursorRight",
+               "Left":           "CursorLeft",
+               "ShiftUp":        "SelectUp",
+               "ShiftDown":      "SelectDown",
+               "ShiftLeft":      "SelectLeft",
+               "ShiftRight":     "SelectRight",
+               "AltLeft":        "WordLeft",
+               "AltRight":       "WordRight",
+               "AltUp":          "MoveLinesUp",
+               "AltDown":        "MoveLinesDown",
+               "AltShiftRight":  "SelectWordRight",
+               "AltShiftLeft":   "SelectWordLeft",
+               "CtrlLeft":       "StartOfLine",
+               "CtrlRight":      "EndOfLine",
+               "CtrlShiftLeft":  "SelectToStartOfLine",
+               "ShiftHome":      "SelectToStartOfLine",
+               "CtrlShiftRight": "SelectToEndOfLine",
+               "ShiftEnd":       "SelectToEndOfLine",
+               "CtrlUp":         "CursorStart",
+               "CtrlDown":       "CursorEnd",
+               "CtrlShiftUp":    "SelectToStart",
+               "CtrlShiftDown":  "SelectToEnd",
+               "Alt-{":          "ParagraphPrevious",
+               "Alt-}":          "ParagraphNext",
+               "Enter":          "InsertNewline",
+               "CtrlH":          "Backspace",
+               "Backspace":      "Backspace",
+               "Alt-CtrlH":      "DeleteWordLeft",
+               "Alt-Backspace":  "DeleteWordLeft",
+               "Tab":            "Autocomplete|IndentSelection|InsertTab",
+               "Backtab":        "CycleAutocompleteBack|OutdentSelection|OutdentLine",
+               "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",
+               "CtrlPageUp":     "PreviousTab",
+               "CtrlPageDown":   "NextTab",
+               "CtrlG":          "ToggleHelp",
+               "Alt-g":          "ToggleKeyMenu",
+               "CtrlR":          "ToggleRuler",
+               "CtrlL":          "command-edit:goto ",
+               "Delete":         "Delete",
+               "CtrlB":          "ShellMode",
+               "CtrlQ":          "Quit",
+               "CtrlE":          "CommandMode",
+               "CtrlW":          "NextSplit",
+               "CtrlU":          "ToggleMacro",
+               "CtrlJ":          "PlayMacro",
+               "Insert":         "ToggleOverwriteMode",
+
+               // 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
+               "F2":  "Save",
+               "F3":  "Find",
+               "F4":  "Quit",
+               "F7":  "Find",
+               "F10": "Quit",
+               "Esc": "Escape",
+
+               // Mouse bindings
+               "MouseWheelUp":   "ScrollUp",
+               "MouseWheelDown": "ScrollDown",
+               "MouseLeft":      "MousePress",
+               "MouseMiddle":    "PastePrimary",
+               "Ctrl-MouseLeft": "MouseMultiCursor",
+
+               "Alt-n": "SpawnMultiCursor",
+               "Alt-m": "SpawnMultiCursorSelect",
+               "Alt-p": "RemoveMultiCursor",
+               "Alt-c": "RemoveAllMultiCursors",
+               "Alt-x": "SkipMultiCursor",
+       }
+}
diff --git a/internal/action/defaults_other.go b/internal/action/defaults_other.go
new file mode 100644 (file)
index 0000000..255d6f2
--- /dev/null
@@ -0,0 +1,107 @@
+// +build !darwin
+
+package action
+
+// DefaultBindings returns a map containing micro's default keybindings
+func DefaultBindings() map[string]string {
+       return map[string]string{
+               "Up":             "CursorUp",
+               "Down":           "CursorDown",
+               "Right":          "CursorRight",
+               "Left":           "CursorLeft",
+               "ShiftUp":        "SelectUp",
+               "ShiftDown":      "SelectDown",
+               "ShiftLeft":      "SelectLeft",
+               "ShiftRight":     "SelectRight",
+               "CtrlLeft":       "WordLeft",
+               "CtrlRight":      "WordRight",
+               "AltUp":          "MoveLinesUp",
+               "AltDown":        "MoveLinesDown",
+               "CtrlShiftRight": "SelectWordRight",
+               "CtrlShiftLeft":  "SelectWordLeft",
+               "AltLeft":        "StartOfLine",
+               "AltRight":       "EndOfLine",
+               "AltShiftLeft":   "SelectToStartOfLine",
+               "ShiftHome":      "SelectToStartOfLine",
+               "AltShiftRight":  "SelectToEndOfLine",
+               "ShiftEnd":       "SelectToEndOfLine",
+               "CtrlUp":         "CursorStart",
+               "CtrlDown":       "CursorEnd",
+               "CtrlShiftUp":    "SelectToStart",
+               "CtrlShiftDown":  "SelectToEnd",
+               "Alt-{":          "ParagraphPrevious",
+               "Alt-}":          "ParagraphNext",
+               "Enter":          "InsertNewline",
+               "CtrlH":          "Backspace",
+               "Backspace":      "Backspace",
+               "Alt-CtrlH":      "DeleteWordLeft",
+               "Alt-Backspace":  "DeleteWordLeft",
+               "Tab":            "Autocomplete|IndentSelection|InsertTab",
+               "Backtab":        "CycleAutocompleteBack|OutdentSelection|OutdentLine",
+               "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",
+               "CtrlPageUp":     "PreviousTab",
+               "CtrlPageDown":   "NextTab",
+               "CtrlG":          "ToggleHelp",
+               "Alt-g":          "ToggleKeyMenu",
+               "CtrlR":          "ToggleRuler",
+               "CtrlL":          "command-edit:goto ",
+               "Delete":         "Delete",
+               "CtrlB":          "ShellMode",
+               "CtrlQ":          "Quit",
+               "CtrlE":          "CommandMode",
+               "CtrlW":          "NextSplit",
+               "CtrlU":          "ToggleMacro",
+               "CtrlJ":          "PlayMacro",
+               "Insert":         "ToggleOverwriteMode",
+
+               // 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
+               "F2":  "Save",
+               "F3":  "Find",
+               "F4":  "Quit",
+               "F7":  "Find",
+               "F10": "Quit",
+               "Esc": "Escape",
+
+               // Mouse bindings
+               "MouseWheelUp":   "ScrollUp",
+               "MouseWheelDown": "ScrollDown",
+               "MouseLeft":      "MousePress",
+               "MouseMiddle":    "PastePrimary",
+               "Ctrl-MouseLeft": "MouseMultiCursor",
+
+               "Alt-n": "SpawnMultiCursor",
+               "Alt-m": "SpawnMultiCursorSelect",
+               "Alt-p": "RemoveMultiCursor",
+               "Alt-c": "RemoveAllMultiCursors",
+               "Alt-x": "SkipMultiCursor",
+       }
+}