Bash CTRL to move cursor between words/strings

后端 未结 4 1058
深忆病人
深忆病人 2020-12-22 17:41

I am use to using the CTRL key to move faster when using the left and right arrow keys (goes to end of a word, instead of one char at a time).

Can I do

相关标签:
4条回答
  • 2020-12-22 18:01

    A .inputrc in your home directory will cause ctrl+left to stop working on Ubuntu (for example).

    To get everything working, add the following to ~/.inputrc:

    # Include system-wide inputrc, which is ignored by default when
    # a user has their own .inputrc file.
    $include /etc/inputrc
    

    credit to f.kowal

    0 讨论(0)
  • 2020-12-22 18:04

    As Thomas explained, you can add the bindings to /etc/inputrc.

    Another alternative so it loads every time you log in, is putting them in ~/.bashrc like this:

    #use ctl keys to move forward and back in words
    bind '"\eOC":forward-word'
    bind '"\eOD":backward-word'
    

    I learned that you can use cat > /dev/null to look at the characters that your keyboard is sending, e.g., CTRL + right arrow shows:

    ^[OC
    

    where ^[ is the same as \e so that's where the code comes from in the bind command.

    You can also look up bindings like this:

    bind -p | grep forward-word
    

    All of this is pretty damn awesome and I'm glad I found out some more power of bash.

    0 讨论(0)
  • 2020-12-22 18:07

    Add $include /etc/inputrc

    in ~/.inputrc

    Worked for CentOS Linux release 8.2.2004 (Core)

    0 讨论(0)
  • 2020-12-22 18:17

    With the default readline key bindings, ALT+B goes back one word, ALT+F goes forward one word.

    The default Ubuntu setup additionally provides CTRL+arrows like you're used to. These are in /etc/inputrc and specified as follows:

    # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving
    "\e[1;5C": forward-word
    "\e[1;5D": backward-word
    "\e[5C": forward-word
    "\e[5D": backward-word
    "\e\e[C": forward-word
    "\e\e[D": backward-word
    

    Not sure why we need three of them...

    0 讨论(0)
提交回复
热议问题