# 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: # Ctrl: A # Available modifiers are Ctrl, F (for function), Meta (escape-char, alt-char) ########################################################## # Common From https://github.com/kkawakam/rustyline#actions ########################################################## # 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: ShiftRight: binding: CompleteHint: # Interrupt/Cancel edition - key: Ctrl: C binding: Interrupt: # (if line is not empty) Delete character under cursor - key: Ctrl: D binding: EndOfFile: # Delete character under cursor - key: Delete: binding: Kill: ForwardChar: 1 # Finish the line entry - key: Ctrl: J binding: AcceptLine: - key: Ctrl: M binding: AcceptLine: - 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: Ctrl: R binding: ReverseSearchHistory: # Forward Search history (Ctrl-R backward, Ctrl-G cancel) - key: Ctrl: S binding: ForwardSearchHistory: # Transpose previous character with current character - key: Ctrl: T binding: TransposeChars: # Delete from start of line to cursor - key: Ctrl: U binding: Kill: BeginningOfLine # Insert any special character without performing its associated action (#65) - key: Ctrl: Q binding: QuotedInsert: - key: Ctrl: V binding: QuotedInsert: # Delete word leading up to cursor (using white space as a word boundary) - key: Ctrl: W binding: Kill: BackwardWord: repeat: 1 word: Big # Paste from Yank buffer - key: Ctrl: Y binding: Yank: repeat: 1 anchor: Before # Suspend (Unix only) - key: Ctrl: Z binding: Suspend: # Undo - key: Ctrl: '_' binding: Undo: 1 # KeyEvent::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), # /// Ctrl-↓ # ControlDown, # /// Ctrl-← # ControlLeft, # /// Ctrl-→ # ControlRight, # /// Ctrl-↑ # ControlUp, # /// Ctrl-char # Ctrl(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, # /// Escape-char or Alt-char # Meta(char), # /// `KeyEvent::Char('\0')` # Null, # /// ⇟ # PageDown, # /// ⇞ # PageUp, # /// → arrow key # Right, # /// Shift-↓ # ShiftDown, # /// Shift-← # ShiftLeft, # /// Shift-→ # ShiftRight, # /// Shift-↑ # ShiftUp, # /// ⇥ 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, # /// downcase-word # DowncaseWord, # /// vi-eof-maybe # EndOfFile, # /// end-of-history # EndOfHistory, # /// forward-search-history # ForwardSearchHistory, # /// history-search-backward # HistorySearchBackward, # /// history-search-forward # HistorySearchForward, # /// Insert text # Insert(RepeatCount, 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), # /// next-history # NextHistory, # /// No action # Noop, # /// vi-replace # Overwrite(char), # /// previous-history # PreviousHistory, # /// quoted-insert # QuotedInsert, # /// vi-change-char # ReplaceChar(RepeatCount, char), # /// vi-change-to, vi-substitute # Replace(Movement, Option), # /// reverse-search-history # ReverseSearchHistory, # /// self-insert # SelfInsert(RepeatCount, 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(RepeatCount, 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,