# These are the common keys acrosso modes taken directly from Rustyline. If # you want to change the keybinding you should change the letter after # "key:". If you want to change the modifier you should change or add the # modifier after "key:", such as: # key: # Char: A # modifiers: # CTRL: # binding: # blah: # Available modifiers are CTRL, ALT, SHIFT, NONE, CTRL_SHIFT, # ALT_SHIFT, CTRL_ALT, CTRL_ALT_SHIFT ########################################################## # Common From https://github.com/kkawakam/rustyline#actions ########################################################## # Control Backspace, delete 1 word at a time - key: Backspace: modifiers: CTRL: binding: Kill: BackwardWord: repeat: 1 word: Big # Alt Backspace, delete 1 word at a time - key: Backspace: modifiers: ALT: binding: Kill: BackwardWord: repeat: 1 word: Big # Move cursor to the beginning of line - key: Home: binding: Move: BeginningOfLine # Move cursor to end of line - key: End: binding: Move: EndOfLine # Move cursor one character left - key: Left: #Left Arrow Key binding: Move: BackwardChar: 1 # Move cursor one character right - key: Right: #Right Arrow Key binding: Move: ForwardChar: 1 # Complete Hint - key: Right: modifiers: SHIFT: binding: CompleteHint: - key: Char: F modifiers: CTRL: binding: CompleteHint: # Interrupt/Cancel edition - key: Char: C modifiers: CTRL: binding: Interrupt: # (if line is not empty) Delete character under cursor - key: Char: D modifiers: CTRL: binding: EndOfFile: # Delete character under cursor - key: Delete: binding: Kill: ForwardChar: 1 # Finish the line entry - key: Char: J modifiers: CTRL: binding: AcceptLine: - key: Char: M modifiers: CTRL: binding: AcceptLine: # This makes multiline editing stop working since Enter accepts a line # - key: # Enter: # binding: # AcceptLine: # Next match from history - key: Down: #Down Arrow Key binding: LineDownOrNextHistory: 1 # Previous match from history - key: Up: #Up Arrow Key binding: LineUpOrPreviousHistory: 1 # Reverse Search history (Ctrl-S forward, Ctrl-G cancel) - key: Char: R modifiers: CTRL: binding: ReverseSearchHistory: # Forward Search history (Ctrl-R backward, Ctrl-G cancel) - key: Char: S modifiers: CTRL: binding: ForwardSearchHistory: # Transpose previous character with current character - key: Char: T modifiers: CTRL: binding: TransposeChars: # Delete from start of line to cursor - key: Char: U modifiers: CTRL: binding: Kill: BeginningOfLine # Insert any special character without performing its associated action (#65) - key: Char: Q modifiers: CTRL: binding: QuotedInsert: - key: Char: V modifiers: CTRL: binding: QuotedInsert: # Delete word leading up to cursor (using white space as a word boundary) - key: Char: W modifiers: CTRL: binding: Kill: BackwardWord: repeat: 1 word: Big # Paste from Yank buffer - key: Char: Y modifiers: CTRL: binding: Yank: repeat: 1 anchor: Before # Suspend (Unix only) - key: Char: Z modifiers: CTRL: binding: Suspend: # Undo - key: Char: "_" modifiers: CTRL: binding: Undo: 1 # KeyPress::UnknownEscSeq => Cmd::Noop, - key: UnknownEscSeq: binding: Noop: ########################################################## # Possible options for key: ########################################################## # /// Unsupported escape sequence (on unix platform) # UnknownEscSeq, # /// ⌫ or `KeyEvent::Ctrl('H')` # Backspace, # /// ⇤ (usually Shift-Tab) # BackTab, # /// Paste (on unix platform) # BracketedPasteStart, # /// Paste (on unix platform) # BracketedPasteEnd, # /// Single char # Char(char), # /// ⌦ # Delete, # /// ↓ arrow key # Down, # /// ⇲ # End, # /// ↵ or `KeyEvent::Ctrl('M')` # Enter, # /// Escape or `KeyEvent::Ctrl('[')` # Esc, # /// Function key # F(u8), # /// ⇱ # Home, # /// Insert key # Insert, # /// ← arrow key # Left, # // /// `KeyEvent::Char('\0')` # Null, # /// ⇟ # PageDown, # /// ⇞ # PageUp, # /// → arrow key # Right, # /// ⇥ or `KeyEvent::Ctrl('I')` # Tab, # /// ↑ arrow key # Up, ########################################################## # Possible options for command binding ########################################################## # /// abort # Abort, // Miscellaneous Command # /// accept-line # AcceptLine, # /// beginning-of-history # BeginningOfHistory, # /// capitalize-word # CapitalizeWord, # /// clear-screen # ClearScreen, # /// complete # Complete, # /// complete-backward # CompleteBackward, # /// complete-hint # CompleteHint, # /// Dedent current line # Dedent(Movement), # /// downcase-word # DowncaseWord, # /// vi-eof-maybe # EndOfFile, # /// end-of-history # EndOfHistory, # /// forward-search-history # ForwardSearchHistory, # /// history-search-backward # HistorySearchBackward, # /// history-search-forward # HistorySearchForward, # /// Indent current line # Indent(Movement), # /// Insert text # Insert { repeat: RepeatCount, string: String }, # /// Interrupt signal (Ctrl-C) # Interrupt, # /// backward-delete-char, backward-kill-line, backward-kill-word # /// delete-char, kill-line, kill-word, unix-line-discard, unix-word-rubout, # /// vi-delete, vi-delete-to, vi-rubout # Kill(Movement), # /// backward-char, backward-word, beginning-of-line, end-of-line, # /// forward-char, forward-word, vi-char-search, vi-end-word, vi-next-word, # /// vi-prev-word # Move(Movement), # /// Inserts a newline # Newline, # /// next-history # NextHistory, # /// No action # Noop, # /// vi-replace # Overwrite(char), # /// Paste from the clipboard # #[cfg(windows)] # PasteFromClipboard, # /// previous-history # PreviousHistory, # /// quoted-insert # QuotedInsert, # /// vi-change-char # ReplaceChar { repeat: RepeatCount, ch: char }, # /// vi-change-to, vi-substitute # Replace { # movement: Movement, # replacement: Option, # }, # /// reverse-search-history # ReverseSearchHistory, # /// self-insert # SelfInsert { repeat: RepeatCount, ch: char }, # /// Suspend signal (Ctrl-Z on unix platform) # Suspend, # /// transpose-chars # TransposeChars, # /// transpose-words # TransposeWords(RepeatCount), # /// undo # Undo(RepeatCount), # /// Unsupported / unexpected # Unknown, # /// upcase-word # UpcaseWord, # /// vi-yank-to # ViYankTo(Movement), # /// yank, vi-put # Yank { repeat: RepeatCount, anchor: Anchor }, # /// yank-pop # YankPop, # /// moves cursor to the line above or switches to prev history entry if # /// the cursor is already on the first line # LineUpOrPreviousHistory(RepeatCount), # /// moves cursor to the line below or switches to next history entry if # /// the cursor is already on the last line # LineDownOrNextHistory(RepeatCount), # /// accepts the line when cursor is at the end of the text (non including # /// trailing whitespace), inserts newline character otherwise # AcceptOrInsertLine, ########################################################## # Possible options for Word ########################################################## # /// non-blanks characters # Big, # /// alphanumeric characters # Emacs, # /// alphanumeric (and '_') characters # Vi, ########################################################## # Possible options for At ########################################################## # /// Start of word. # Start, # /// Before end of word. # BeforeEnd, # /// After end of word. # AfterEnd, ########################################################## # Possible options for Anchor ########################################################## # /// After cursor # After, # /// Before cursor # Before, ########################################################## # Possible options for CharSearch ########################################################## # /// Forward search # Forward(char), # /// Forward search until # ForwardBefore(char), # /// Backward search # Backward(char), # /// Backward search until # BackwardAfter(char), ########################################################## # Possible options for Movement ########################################################## # /// Whole current line (not really a movement but a range) # WholeLine, # /// beginning-of-line # BeginningOfLine, # /// end-of-line # EndOfLine, # /// backward-word, vi-prev-word # BackwardWord(RepeatCount, Word), // Backward until start of word # /// forward-word, vi-end-word, vi-next-word # ForwardWord(RepeatCount, At, Word), // Forward until start/end of word # /// vi-char-search # ViCharSearch(RepeatCount, CharSearch), # /// vi-first-print # ViFirstPrint, # /// backward-char # BackwardChar(RepeatCount), # /// forward-char # ForwardChar(RepeatCount), # /// move to the same column on the previous line # LineUp(RepeatCount), # /// move to the same column on the next line # LineDown(RepeatCount), # /// Whole user input (not really a movement but a range) # WholeBuffer, # /// beginning-of-buffer # BeginningOfBuffer, # /// end-of-buffer # EndOfBuffer,