2017-08-06 68 views
2

我的系统是基于Arch Linux的Manjaro Linux,我使用bash和bash-completion人性化的bash自动完成sudo

它完美,当我输入的东西作为普通用户(无sudo

$ rfkill <TAB><TAB> 
block event help  list  unblock 

但是当我使用sudo键入

$ sudo rfkill <TAB><TAB> 
Display all 3811 possibilities? (y or n) 

显然,它试图完成sudo命令,但我想它完成rfkill

我知道我可以通过编辑/usr/share/bash-completion/completions/sudo文件改变这种行为,但我不知道怎么说如果第二个字是不是sudo的一个标志,然后使用完成对下一个字

你有吗?

UPD:我在虚拟机中测试Ubuntu 16.04,我发现它按预期工作。我会检查Ubuntu的/usr/share/bash-completion/completions/sudo文件和我的文件之间的区别,如果有的话。

UPD2:这些文件之间存在一些镜像(无意义)区别,无论如何这并没有帮助。我有更多的想法,以测试...

回答

0

采用双层标签:

sudo rfkill <TAB><TAB> 

UPD

如果没有这一行,将它添加到您的.bashrc

complete -cf sudo 
+0

我意思是我使用双选项卡,我要编辑我的问题,谢谢 –

+0

请参阅更新版本,这可能会有所帮助。 – tso

+1

它不起作用(实际上我在'.bashrc'中已经有了这一行),我会尝试明天替换'/ usr/share/bash-completion/completions/sudo'文件,现在没时间了。 –