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

时间:2011-02-17 12:48:37

标签: bash

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

我能以某种方式在bash中这样做吗?

我可能会编码,但我想知道是否有更容易/已经完成的事情。

4 个答案:

答案 0 :(得分:83)

使用默认的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

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

答案 1 :(得分:39)

正如托马斯解释的那样,您可以将绑定添加到/etc/inputrc

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

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

我了解到您可以使用cat > /dev/null查看键盘发送的字符,例如,CTRL +右箭头显示:

^[OC

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

你也可以查找这样的绑定:

bind -p | grep forward-word

所有这一切都非常棒,我很高兴我发现了更多的bash力量。

答案 2 :(得分:1)

添加$include /etc/inputrc

~/.inputrc

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

答案 3 :(得分:0)

例如,主目录中的.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

贷记f.kowal