求助 bash 补全设置

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

求助 bash 补全设置

#1

帖子 自由建客 » 2012-01-06 22:05

目标:不补全空参数。
例如:
在 /root 或 /etc/skel 目录,该目录下面只有以点开头的文件或子目录。
输入 ls <Tab> 应当没有反映才是,无论我按多少次 <Tab> 它都应该没有反应。
直到我多加个点 ls .<Tab>,此时按 <Tab> 才有候选列表

代码: 全选

>0< ~# ls .
./                   .config/
../                  .inputrc
.aptitude/           .lesshst
.bash_history        .pulse/
.bash_logout         .pulse-cookie
.bash_profile        .recently-used.xbel
.bashrc              .viminfo
换言之就是,我不希望 ls 空格后那个点会在我按 <Tab> 的时候自动出现。
tcsh 恰是如此。
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 求助 bash 补全设置

#2

帖子 eexpress » 2012-01-06 23:46

谁会一个字母都不输入,就tab哦。
你也太节约键盘了。
● 鸣学
头像
自由建客
帖子: 13468
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64

Re: 求助 bash 补全设置

#3

帖子 自由建客 » 2012-01-07 15:47

如果当前目录下只有以点开头的文件名,空格后直接 <Tab> 就会自动出现点,然而这并非我所希望的。
原因在于,我复制含有 <Tab> 字符的命令粘贴到 bash 时, <Tab> 会变成点号,而不是期望的删除。
请看这里 viewtopic.php?f=48&t=359973

简言之:
在只有“隐藏文件”的 /etc/skel 目录下,输入

代码: 全选

ls<Space><Tab>
不会变成

代码: 全选

ls .
bash 能否做到?
回复