能否为自定义Shell函数cdw实现Tab路径自动补全?
实现cdw函数的Tab自动补全方法
完全可行,给bash函数添加Tab补全需要借助complete命令配合自定义补全逻辑,具体操作如下:
- 把以下代码添加到你的
~/.bashrc或~/.bash_profile文件中:
# 快速切换工作区目录的函数 function cdw() { cd ~/workspace/$1 } # cdw的补全逻辑函数 function _cdw_completion() { local cur=${COMP_WORDS[COMP_CWORD]} # 生成~/workspace下匹配当前输入前缀的子目录列表 COMPREPLY=( $(compgen -d -- ~/workspace/"$cur") ) # 去掉路径前缀,只保留文件夹名称作为补全候选 COMPREPLY=( "${COMPREPLY[@]/#$HOME\/workspace\//}" ) } # 将补全函数绑定到cdw命令 complete -F _cdw_completion cdw
- 让配置生效:
- 要么重启终端窗口
- 要么在当前终端执行
source ~/.bashrc(如果修改的是.bashrc文件)
之后你输入cdw加空格再按Tab键,就会自动补全~/workspace下的文件夹名称了。
内容的提问来源于stack exchange,提问作者mal
相关产品推荐
相关产品推荐

