我CTRL习惯于在使用左右箭头键时使用键来加快移动速度(转到单词的末尾,而不是一次输入一个字符)。
我可以以某种方式进行bash吗?
我可能可以编写代码,但是我想知道是否有更简单/已经完成的事情。
我CTRL习惯于在使用左右箭头键时使用键来加快移动速度(转到单词的末尾,而不是一次输入一个字符)。
我可以以某种方式进行bash吗?
我可能可以编写代码,但是我想知道是否有更简单/已经完成的事情。
Answers:
使用默认的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
不知道为什么我们需要三个...
~/.inputrc
,而不是
$include /etc/inputrc
还将加载系统inputrc文件。
正如Thomas所解释的,您可以将绑定添加到/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的更多功能。
inputrc
解决方案也将适用于其他使用readline的程序,例如Python解释器,大多数其他shell。请注意,~/.inputrc
如果您没有root用户或不希望将它们应用于所有用户,也可以将其放入。
I learned that you can use cat > /dev/null to look at the characters that your keyboard is sending
。#TIL
read
并按Enter来获得与相同的效果cat > /dev/null
。我很懒,所以我喜欢打字少的解决方案。:)
例如,您的主目录中的.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
^[OC
的与您的相同。在xterm
我得到的^[[1;5
是一样的托马斯。