我习惯使用 CTRL 键在使用左右箭头键时移动得更快(转到单词的结尾,而不是一次只有一个字符)。
我能以某种方式在bash中这样做吗?
我可能会编码,但我想知道是否有更容易/已经完成的事情。
答案 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