Bash CTRL在单词/string之间移动光标
在使用左右箭头键的时候,使用CTRL键可以更快地移动(一次转到一个单词的结尾,而不是一次一个字符)。
我可以以某种方式做到这一点吗?
我可能可以编码,但我想知道是否有更容易/已经完成的事情。
使用默认的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
。
另一种方法是每次login时加载它,就像这样把它们放在~/.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。