Bash 按CTRL键在单词/字符串之间移动光标

Bash 按CTRL键在单词/字符串之间移动光标,bash,Bash,我习惯于在使用左箭头键和右箭头键时使用CTRL键移动得更快(转到单词的末尾,而不是一次一个字符) 我可以在bash中这样做吗 我可能可以编写它,但我想知道是否有更简单/已经完成的操作。使用默认的readline键绑定,ALT+B返回一个单词,ALT+F前进一个单词 默认的Ubuntu设置还提供了与您习惯的一样的CTRL+箭头。它们位于/etc/inputrc中,并指定如下: # mappings for Ctrl-left-arrow and Ctrl-right-arrow for word

我习惯于在使用左箭头键和右箭头键时使用CTRL键移动得更快(转到单词的末尾,而不是一次一个字符)

我可以在bash中这样做吗


我可能可以编写它,但我想知道是否有更简单/已经完成的操作。

使用默认的readline键绑定,ALT+B返回一个单词,ALT+F前进一个单词

默认的Ubuntu设置还提供了与您习惯的一样的CTRL+箭头。它们位于
/etc/inputrc
中,并指定如下:

# 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

不确定为什么我们需要三个…

正如Thomas所解释的,您可以将绑定添加到
/etc/inputrc

另一种方法是在每次登录时加载它们,将它们放入
~/.bashrc
中,如下所示:

#use ctl keys to move forward and back in words
bind '"\eOC":forward-word'
bind '"\eOD":backward-word'
bind -p | grep forward-word
我了解到,您可以使用
cat>/dev/null
查看键盘正在发送的字符,例如,CTRL+向右箭头显示:

^[OC
其中
^[
\e
相同,因此在
bind
命令中代码来自于此

您还可以像这样查找绑定:

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

所有这些都非常棒,我很高兴我发现了bash的强大功能。

A.主目录中的inputrc将导致ctrl+left停止在Ubuntu上工作(例如)

要使一切正常工作,请将以下内容添加到~/.inputrc:

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

计入

添加
$include/etc/inputrc

~/.inputrc中


为CentOS Linux 8.2.2004版(核心版)工作

我认为这只会影响bash,而
inputrc
解决方案也将应用于使用readline的其他程序,例如Python解释器和大多数其他shell。请注意,如果您没有root,或者不希望将命令应用于所有用户,也可以将命令放在
~/.inputrc
中。无论出于何种原因,这只起作用当我交换上面几行的顺序时,我为我做了修改。进一步说明。我在Windows 8.1的putty后面使用Ubuntu 14.04LTS。+1尤其是
,我了解到你可以使用cat>/dev/null查看键盘发送的字符
,直到你也可以简单地键入
读取
,然后按enter键以达到与之相同的效果
cat>/dev/null
。我很懒,所以我喜欢少打字的解决方案。:)ctrl+4使我的猫崩溃(它发送^/)@bryan_ruiz:不同的键盘(终端模拟器等)输出不同的序列。要查看序列,请按ctrl-v,然后按键。对于PuTTY中的我,ctrl-v ctrl-RightArrow给我
^[OC
与您的相同。在
xterm
中,我得到了
^[[1;5
与Thomas相同。最好是通过编辑
~/.inputrc
insteadI无法相信没有它我能活多久。编辑~/.inputrc可能会停止加载“系统”一个(/etc/inputrc)。还要注意,“设置-o”设置--“set-o emacs”应该在命令行上为您提供emacs样式的键绑定,而不是“set-o vi”(完成此操作后,您需要在尝试使用w或b之前按ESC键)。@DavidGoodwin在稍微搜索后,添加
$include/etc/inputrc
也将加载系统inputrc文件。