【发布时间】:2020-07-19 11:56:33
【问题描述】:
我创建了一个命令memo如下:
memo() {
vi $HOME/memo/$1
}
我想对我的memo 应用 bash-completion 来打开已经在$HOME/memo 目录中的文件:
$ memo [TAB] # to show files in $HOME/memo
$HOME/memo 包含目录,因此在memo 下列出文件是不够的。
换句话说,我想将$HOME/memo中ls命令中使用的内容应用到memo:
$ ls [TAB]
foo.md bar/
我尝试了以下方法,但它不适用于嵌套目录:
_memo() {
local cur
local files
_get_comp_words_by_ref -n : cur
files=$(ls $MEMODIR)
COMPREPLY=( $(compgen -W "${files}" -- "${cur}") )
}
complete -F _memo memo
MEMODIR=$HOME/memo
【问题讨论】:
标签: bash bash-completion