|
一直都羡慕zsh的complete_aliases功能...
例如
ai='sudo apt-get install'
ap='sudo apt-get purge'
aw='apt-cache show'
输入ai或者aw, 然后按TAB键就可以补全软件包的名字
输入aw, 然后按TAB键就可以补全已经安装的软件包的名字
可惜bash没有,bash_completion也没有....只好自己写规则了,好在只有十几行...
在./.bashrc中加入以下内容...- alias ai='sudo apt-get install'
- alias ap='sudo apt-get purge'
- alias aw='apt-cache show'
- _show_installed()
- {
- local cur
- COMPREPLY=()
- cur=`_get_cword`
- COMPREPLY=( $( _comp_dpkg_installed_packages $cur ) )
- return 0
- }
- _show_all()
- {
- local cur
- COMPREPLY=()
- cur=`_get_cword`
- COMPREPLY=( $( apt-cache pkgnames $cur 2> /dev/null ) )
- return 0
- }
- complete -F _show_all $default aw
- complete -F _show_all $default ai
- complete -F _show_installed $default ap
复制代码
以上是根据/etc/bash_completion写的,如果你有别的需要补全的alias,只需要查看相应命令在其中的规则写法就是了,目前我需要的就是上面的安装的和全部的软件包名.... |
|