可以用bind -p 来看看系统中已经作了哪些键绑定。
例如:
"\C-r": reverse-search-history
这个绑定的意思是,在命令行进行历史记录查询的时候,可以用快捷键 Ctrl+r,然后输入若干字符,它可以把历史命令中包含所输入字串的命令拿出来,但我不喜欢用这种功能,嫌它在视觉上比较乱。
在传统上,使用上下箭头进行历史记录查询还是大家比较习惯的方式,但缺省状态下的上下箭头的功能只是用它一个个地查找,这样没有针对性,会让人很累。
最方便的是补全性的历史记录查询,即输入一个或几个字母,查找以它开头的历史记录,查看一下系统中是否已经实现了这种绑定:
# bind -p | egrep 'history-search-forward|history-search-backward'
# history-search-backward (not bound)
# history-search-forward (not bound)
这说明没有实现。
如果是下面这样:
"\e[5~": history-search-backward
"\e[6~": history-search-forward
就是用'page up'和'page down'进行补全性的历史记录查询,这是Linux下的传统方式。
如果打算用上下箭头来完成,可以用bind命令:
# bind '"\e[A": history-search-backward'
# bind '"\e[B": history-search-backward'
但用bind命令来作只是在当前的shell中作临时的绑定,写在配置文件中才是长久之计,首先,在~/.bashrc中设置INPUTRC环境变量来指定键绑定的配置文件:
export INPUTRC=/etc/inputrc
如果不设置的话,INPUTRC的值为~/.inputrc 。
然后,在/etc/inputrc中找到mode=emacs这个条件语句,在其中众多的绑定中填上两行:
$if mode=emacs
"\e[A": history-search-backward
"\e[B": history-search-forward
$endif
阅读(1504) | 评论(0) | 转发(0) |