# Don't mess with the eighth bit of characters set input-meta on set output-meta on # Never ring any sort of bell during line reading set bell-style none # Let readline do stuff like word killing, not stty(1) set bind-tty-special-chars off # Ignore case when matching and completing paths set completion-ignore-case on # Treat underscores and hyphens the same way for completion purposes set completion-map-case on # Show me up to 5,000 completion items, don't be shy set completion-query-items 5000 # Don't display control characters like ^C if I input them set echo-control-characters off # Expand tilde to full path on completion set expand-tilde on # Keep the cursor column when iterating through history set history-preserve-point on # Add a trailing slash for directories and symlinked directories set mark-directories on set mark-symlinked-directories on # Don't match dotfiles unless there's a dot set match-hidden-files off # Don't paginate possible completions set page-completions off # Goes nicely with ls(1) -x/--format=across set print-completions-horizontally on # Don't actually modify my history set revert-all-at-newline on # Show multiple completions on first tab press set show-all-if-ambiguous on # Don't re-complete already completed text in the middle of a word set skip-completed-text on # Bash macros $if Bash # Expand ! history with a spacebar press # Note that this makes your shell unusable if your Bash doesn't have # magic-space. It's had this feature since 2.02. Space: magic-space # Tab does traditional blocking completion Tab: complete # Alt+A cycles through completion options "\ea": menu-complete # Special completion keys for git(1) ## Branches "\C-xb": complete ## Tags "\C-xt": complete # Ctrl-Alt-L to clear screen; more ksh-like "\e\C-l": clear-screen # Alt-E (for exec) to prepend "exec " to a command and return to the end of # the line "\ee": "\C-aexec \C-e" # Alt-P (for procedure) to wrap current command in () { ... ; } and go to # the start of the line "\ep": "\C-a() { \C-e ; }\C-a" # Alt-S (for set) to wrap current command in (set -x ; ...) "\es": "\C-a(set -x ; \C-e)\C-b" # Alt-M (for muxer) to run tm(1df) "\em": "\C-utm\C-j\C-y" # Alt-' for escaped single-quote: 'don'\''t fear the reaper' "\e'": "'\\''" # Ctrl-Alt-B to move backward a shell-quoted word "\e\C-b": shell-backward-word # Ctrl-Alt-F to move forward a shell-quoted word "\e\C-f": shell-forward-word # Ctrl-Alt-W to delete a previous shell-quoted word "\e\C-w": shell-backward-kill-word $endif # bc macros $if bc # Don't let bc complete filenames (!?) Tab: $endif