Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1309196
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类: LINUX

2007-07-14 22:32:41

可以用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
阅读(1479) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~