Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
OSX .inputrc to make terminal way better. and by better i mean i'm naked
"\e[1~": beginning-of-line
"\e[4~": end-of-line
"\e[5~": history-search-backward
"\e[6~": history-search-forward
"\e[3~": delete-char
"\e[2~": quoted-insert
"\e[5C": forward-word
"\e[5D": backward-word
"\e\e[C": forward-word
"\e\e[D": backward-word
set completion-ignore-case On
set expand-tilde on
set convert-meta off
set input-meta on
set output-meta on
set show-all-if-ambiguous on
set visible-stats on
set -o vi
@DebugXYZ

This comment has been minimized.

Copy link

commented Apr 1, 2012

also if you know vim, you can set bash or zsh to use vim with: "set -o vi" in your bashrc

@gregorynicholas

This comment has been minimized.

Copy link
Owner Author

commented Apr 2, 2012

thanks @deshawnbw! that's for sure a solid

@jasonshanks

This comment has been minimized.

Copy link

commented Apr 7, 2012

I like the fast completion! Can you provide some explanation on what everything else does though? I'm assuming the first block is VI keyboard shortcuts?

@gregorynicholas

This comment has been minimized.

Copy link
Owner Author

commented Apr 10, 2012

cheers @plmtr -- they are actually a number of helpful settings for the terminal input directly.. allowing for such things as skipping words with the control key and arrow cursors..

@jasonshanks

This comment has been minimized.

Copy link

commented Apr 10, 2012

Thanks @gregorynicholas - From a little web searching and hunt & pecking around I figured out that CTRL+A = beg of line, CTRL+E = end of line. I guess the next step would be commenting each line for us terminal intermediates such as myself!

@jasonm23

This comment has been minimized.

Copy link

commented Apr 17, 2012

Emacs nav keys work by default already, so alt-f / alt-b are forward / back word, alt-a / alt-e are forward back sentence / block, etc... etc...

@jasonm23

This comment has been minimized.

Copy link

commented Apr 17, 2012

Also zsh let's you do alt-x and then enter these shell navigation/control commands wit Tab completion too.

@jduthen

This comment has been minimized.

Copy link

commented Oct 20, 2013

@plmtr: instead of web searching and hunt, you might rtfm:
From Terminal.app: man bash
or, from within emacs: M-x man RET bash RET
and then search for "Commands for Moving"
HTH

@rampion

This comment has been minimized.

Copy link

commented Jan 15, 2014

What keystroke is "\e[1~"?

@fetmar

This comment has been minimized.

Copy link

commented Jul 28, 2014

Backward word delete didn't work for me until I checked this setting:

Terminal | Preferences | Settings | Keyboard | Use option as meta key

And forward word delete only works once I add a key mapping in the same Keyboard panel with the following settings

  • Key: Forward Delete
  • Modifier: Option
  • Send text: /033d Hit esc, d to insert this

Now all is right in the universe.

@fetmar

This comment has been minimized.

Copy link

commented Jul 28, 2014

@gregorynicholas, this didn't seem to matter but 4 of the double quotes in your example are not actually " characters.

@Grazfather

This comment has been minimized.

Copy link

commented Feb 3, 2015

@rampion it's escape-home

@codekiln

This comment has been minimized.

Copy link

commented May 18, 2015

If "\e[1~" is escape home, what are the others?

@colemickens

This comment has been minimized.

Copy link

commented Aug 5, 2016

Lines 3 and 4 have smart quotes.

@gregorynicholas

This comment has been minimized.

Copy link
Owner Author

commented Jan 10, 2017

@thom-nic

This comment has been minimized.

Copy link

commented Feb 2, 2017

Most important lines in my .inputrc:

# From http://www.ukuug.org/events/linux2003/papers/bash_tips/
# Incremental searching with Up and Down. Type 'ssh <up>' to get the last 'ssh' command you used
"\e[A": history-search-backward
"\e[B": history-search-forward
@soshial

This comment has been minimized.

Copy link

commented Mar 30, 2018

Reloading these combinations with source ~/.inputrc didn't work for me and this worked: bind -f ~/.inputrc

@mgiugliano

This comment has been minimized.

Copy link

commented Jun 6, 2018

Thank you @shoshial: that solved my problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.