免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2677 | 回复: 9

一个朝思暮想的 shell下自动补全问题 [复制链接]

论坛徽章:
0
发表于 2009-03-29 00:24 |显示全部楼层
依稀记得有一个命令可以根据当前已经输入的字符自动补全出history中执行过的匹配命令,情景如下:

例如,我目前的history如下:
    cd testdir/
    ll
    ping remote-desktop
    ssh remote-desktop
    history
    man alias
    ping 193.168.1.100
    ssh 193.168.1.100
    man malloc
    make clean
    make

现在,我在shell上输入ping后,哪个快捷键<**+**>可以达到这样的效果:
按一下快捷键<**+**>就可自动补全出"ping 193.168.1.100",
再按一下<**+**>就可以补全出上一个"ping remote-desktop"
(就像<ctrl+p>和<ctrl+n>一样)

有哪位兄弟记得么?谢谢了!

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
发表于 2009-03-29 00:31 |显示全部楼层
dynamic-complete-history
在emacs模式下是 M-TAB
vi模式下好像没有绑定

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
发表于 2009-03-29 00:57 |显示全部楼层
额 自己又试了一下emacs模式 好像也没绑定  我平时用vi模式 M-TAB是我在man里面看到的
你自己用下面的命令

bind  -p | grep dynamic-complete-history

看下你系统的绑定,前面有#号就是没绑定

[ 本帖最后由 vbs100 于 2009-3-29 01:11 编辑 ]

论坛徽章:
0
发表于 2009-03-29 07:20 |显示全部楼层
[root@erpdataserver ~]# expr length ${a//0}
5
[root@erpdataserver ~]# !ex
expr length ${a//0}
5
这种只能实现最近一条的。。
也想知道有没有别的好方法

论坛徽章:
0
发表于 2009-03-29 10:55 |显示全部楼层
bash 下是Ctrl+R

论坛徽章:
0
发表于 2009-03-29 11:44 |显示全部楼层

回复 #5 haimming 的帖子

这个不错,学习了,好东东

论坛徽章:
0
发表于 2009-03-29 22:39 |显示全部楼层

回复 #3 vbs100 的帖子

我查出来的结果是:
"\e\C-i": dynamic-complete-history


上面的\e是指哪个键?
还有,如何更改配置呢?

谢谢!

论坛徽章:
0
发表于 2009-03-29 22:41 |显示全部楼层

回复 #5 haimming 的帖子

ctrl-r可以实现类似的功能,但不是我想要的那个...

论坛徽章:
0
发表于 2009-03-29 22:50 |显示全部楼层

回复 #7 jakee304 的帖子

这是在什么下用的?没看懂,bash下直接\e\C-i有这效果?

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
发表于 2009-03-30 00:02 |显示全部楼层

回复 #7 jakee304 的帖子

\e\C-i 的意思是 ESC CTRL+i 或 ALT + CTRL +i
不过我试了 不能实现你的要求 只能把你历史里的相似的列出来 不能自动换到命令行上
还有一个补全 menu-complete 这个可以实现自动换到命令行上 但这个是不是按历史补全的
所以bash没有能完全实现你那个功能的被全

bash的所有补全 可以由 bind -l | grep complete 得到 你可以一个一个试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP