In the default Cygwin installation, using CTRL-LEFTARROW or CTRL-RIGHTARROW simply prints 5C or 5D instead of skipping a word at a time as expected.

Home/End keys work properly, so remapping should be possible.

  • Note that this question addresses Cygwin, but can have general application to Unix/Linux systems. If you are using PuTTY and find that the solutions here don't work for you, take a look at a question specifically about what codes to use for PuTTY.
    – palswim
    Sep 27, 2017 at 21:37
  • This also happened to me under a full linux; on some advice online, I added a ~/.inputrc file - which annulled all the linux mint defaults. You can get them back by adding $include /etc/inputrc to the top of your ~/.inputrc (assuming that /etc/inputrc is your system-wide inputrc, which it is on Linux Mint)
    – user208769
    Oct 17, 2019 at 14:44

5 Answers 5


Found a solution, posting it here for posterity.

Add the following lines to ~/.inputrc (C:\cygwin\home\<username>\.inputrc):

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

When done you can press C-x C-r to re-read the .inputrc file for the current session.

Things to note if you want other similar customisations: Use 5A and 5B for up and down arrows, and 2x for shifted versions.

The "official" key mappings are described in the Bash Reference Manual, but for a quick way to find a key mapping, in bash:

  1. type Ctrl+V
  2. type the key sequence you are interested in (e.g., Alt+). This would print ^[[1;3C
  3. remove the leading ^[ and replace it with \e to make \e[1;3C
  4. place this value in your .inputrc file.
  • Some keyboard codes are not showing at all like <kbd>Shift</kbd> + <kbd>Enter</kbd>. How do I find these keyboard codes via Mintty/Windows/Cygwin? Apr 6, 2016 at 12:06

You can reload file .inputrc via:

bind -f ~/.inputrc


  • 3
    This is useful, but not really an answer to the question - perhaps it would be better as a comment to another answer? Jan 12, 2017 at 14:29
  • Added to @Tom's answer above
    – dovetalk
    May 20, 2017 at 15:54

In case you want something that'll work without custom environment settings, for instance when working on a shared account on a server or just to limit the amount of custom configuration being used, Bash has built-ins for this that work in Cygwin.

Namely Alt+f to move forward and Alt+b to move backward.


  • 4
    Thanks, though I am aware of those keys and do use them. I just also use the arrow keys when it's convenient and don't want them spewing escape codes instead of doing the sane thing and moving the cursor.
    – Tom
    Mar 20, 2013 at 22:23

When using rxvt with cygwin I found the solution at this link worked for me: control_arrow_keys_in_rxvt.

Add the following lines to ~/.inputrc :

"\eOd": backward-word
"\eOc": forward-word
  • That's when an additional layer is changing the transmitted keys (but it doesn't answer the question asked). Nov 3, 2012 at 20:46

This solution also works in msys2 consoles:

"\e[1;5C": forward-word   # ctrl + right
"\e[1;5D": backward-word  # ctrl + left 

Just place these key combinations in the .inputrc file.

  • This is just a part of the accepted answer.
    – CristiFati
    Feb 2, 2021 at 21:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.