amd*_*xon 2 bash alias autocomplete
我正在尝试用更直观的 watch 命令替换 vlc。
所需的功能
自动完成
观看 /path/to/mo Tab --> 观看 /path/to/movie.avi
执行vlc
watch /path/to/movie.avi Enter# 这应该运行 `vlc /path/to/movie.avi
目前我正在使用上面的别名 todo :
~/.bashrc
...
alias watch='vlc'
...
Run Code Online (Sandbox Code Playgroud)
这符合execute vlc上面的要求,但没有给出正确的autocompletion[1]
目前的行为
$ vlc /path/to/mo Tab--> vlc /path/to/movie.avi (成功完成)
$ watch /path/to/mo Tab--> watch /path/to/mo (不是自动完成..)
正如@GUIDO 提到的,watch是一个内置命令。这在某种程度上影响了自动完成。更改为play有效,但想了解为什么这不起作用以及如何修复..
笔记
但定义函数wrap_alias(在我的~/.bashrc中)并调用
wrap_alias watch vlc ''
Run Code Online (Sandbox Code Playgroud)
没有解决自动完成问题
如果我们查看命令“vlc”的完成结果,我们会看到:
$ complete | grep vlc
complete -F _minimal vlc
Run Code Online (Sandbox Code Playgroud)
所以包装函数是“_minimal”。我们可以对新命令使用相同的命令:
$ alias watch='vlc'
$ complete -F _minimal watch
Run Code Online (Sandbox Code Playgroud)
现在必须解决这个问题。