#{- ~/.inputrc -}#

#{- EDITING MODE -}#

# Use vi mode
set editing-mode vi

#{- PROMPT -}#

set show-mode-in-prompt on
# Emacs mode prompt: (@) in magenta
set emacs-mode-string  "\1\033[1;35m\2@\1\033[0m\2"
# Vim insert mode prompt: (+) in blue
set vi-ins-mode-string "\1\033[1;34m\2+\1\033[0m\2"
# Vim command mode prompt: (:) in blue
set vi-cmd-mode-string "\1\033[1;34m\2:\1\033[0m\2"

#{- CONTROL CHARACTERS -}#

# Ignore bell characters
set bell-style none

# Don't echo control characters
set echo-control-characters off

#{- COMPLETION -}#

# Mark file types with colors and symbols
set visible-stats on
set colored-stats on

# Mark directories in completion
set mark-directories on

# Use colors to highlight common prefix when displaying matches
set colored-completion-prefix on


# Matching is case insensitive
set completion-ignore-case on

# When matching, - and _ are equivalent
set completion-map-case on

# Don't match hidden files
set match-hidden-files off


# Display matches with a single tab
set show-all-if-ambiguous on
set show-all-if-unmodified on

# Allow completion in the middle of a word
set skip-completed-text on

# Don't use a pager to display matches
set page-completions off

#{- BINDINGS -}#

# Enable emacs bindings that don't conflict with vi defaults
set keymap vi-insert
  Control-a: beginning-of-line
  Control-b: backward-char
  # Control-d: delete-char
  Control-e: end-of-line
  Control-f: forward-char
  Control-g: abort
  Control-k: kill-line
  Control-l: clear-screen
  # Control-n: next-history
  Control-o: operate-and-get-next
  # Control-p: previous-history
  Control-q: quoted-insert
  Control-@: set-mark
  Control-_: undo
  "\e[A": history-search-backward
  "\e[B": history-search-forward
set keymap vi-command
  j: history-search-forward
  k: history-search-backward
  "\e[A": history-search-backward
  "\e[B": history-search-forward
