"os"
"strings"
- "github.com/yosuke-furukawa/json5/encoding/json5"
+ "github.com/zyedidia/json5/encoding/json5"
"github.com/zyedidia/tcell"
)
"CutLine": (*View).CutLine,
"DuplicateLine": (*View).DuplicateLine,
"DeleteLine": (*View).DeleteLine,
+ "MoveLinesUp": (*View).MoveLinesUp,
+ "MoveLinesDown": (*View).MoveLinesDown,
"IndentSelection": (*View).IndentSelection,
"OutdentSelection": (*View).OutdentSelection,
+ "OutdentLine": (*View).OutdentLine,
"Paste": (*View).Paste,
"PastePrimary": (*View).PastePrimary,
"SelectAll": (*View).SelectAll,
"ClearStatus": (*View).ClearStatus,
"ShellMode": (*View).ShellMode,
"CommandMode": (*View).CommandMode,
+ "Escape": (*View).Escape,
"Quit": (*View).Quit,
"QuitAll": (*View).QuitAll,
"AddTab": (*View).AddTab,
"NextTab": (*View).NextTab,
"NextSplit": (*View).NextSplit,
"PreviousSplit": (*View).PreviousSplit,
+ "Unsplit": (*View).Unsplit,
+ "VSplit": (*View).VSplitBinding,
+ "HSplit": (*View).HSplitBinding,
"ToggleMacro": (*View).ToggleMacro,
"PlayMacro": (*View).PlayMacro,
"CtrlRightSq": tcell.KeyCtrlRightSq,
"CtrlCarat": tcell.KeyCtrlCarat,
"CtrlUnderscore": tcell.KeyCtrlUnderscore,
- "Backspace": tcell.KeyBackspace,
"Tab": tcell.KeyTab,
"Esc": tcell.KeyEsc,
"Escape": tcell.KeyEscape,
"Enter": tcell.KeyEnter,
- "Backspace2": tcell.KeyBackspace2,
+ "Backspace": tcell.KeyBackspace2,
// I renamed these keys to PageUp and PageDown but I don't want to break someone's keybindings
"PgUp": tcell.KeyPgUp,
case strings.HasPrefix(k, "-"):
// We optionally support dashes between modifiers
k = k[1:]
- case strings.HasPrefix(k, "Ctrl"):
+ case strings.HasPrefix(k, "Ctrl") && k != "CtrlH":
+ // CtrlH technically does not have a 'Ctrl' modifier because it is really backspace
k = k[4:]
modifiers |= tcell.ModCtrl
case strings.HasPrefix(k, "Alt"):
func BindKey(k, v string) {
key, ok := findKey(k)
if !ok {
+ TermMessage("Unknown keybinding: " + k)
return
}
if v == "ToggleHelp" {
"ShiftRight": "SelectRight",
"AltLeft": "WordLeft",
"AltRight": "WordRight",
+ "AltUp": "MoveLinesUp",
+ "AltDown": "MoveLinesDown",
"AltShiftRight": "SelectWordRight",
"AltShiftLeft": "SelectWordLeft",
"CtrlLeft": "StartOfLine",
"CtrlShiftUp": "SelectToStart",
"CtrlShiftDown": "SelectToEnd",
"Enter": "InsertNewline",
- "Space": "InsertSpace",
+ "CtrlH": "Backspace",
"Backspace": "Backspace",
- "Backspace2": "Backspace",
+ "Alt-CtrlH": "DeleteWordLeft",
"Alt-Backspace": "DeleteWordLeft",
- "Alt-Backspace2": "DeleteWordLeft",
"Tab": "IndentSelection,InsertTab",
- "Backtab": "OutdentSelection",
+ "Backtab": "OutdentSelection,OutdentLine",
"CtrlO": "OpenFile",
"CtrlS": "Save",
"CtrlF": "Find",
"CtrlR": "ToggleRuler",
"CtrlL": "JumpLine",
"Delete": "Delete",
- "Esc": "ClearStatus",
"CtrlB": "ShellMode",
"CtrlQ": "Quit",
"CtrlE": "CommandMode",
"Alt-e": "EndOfLine",
"Alt-p": "CursorUp",
"Alt-n": "CursorDown",
+
+ // Integration with file managers
+ "F1": "ToggleHelp",
+ "F2": "Save",
+ "F4": "Quit",
+ "F7": "Find",
+ "F10": "Quit",
+ "Esc": "Escape",
}
}