bash别名没有自动填充与别名相同

时间:2015-05-24 03:27:55

标签: bash autocomplete alias

我正在尝试用更直观的监视命令替换vlc。

所需功能

  
      
  1. 自动完成

         

    watch / path / to / mo Tab - >观看/path/to/movie.avi

  2.   
  3. 执行vlc

         

    观看/path/to/movie.avi 输入#这应运行`vlc /path/to/movie.avi

  4.   

目前我正在使用上面的别名todo:

〜/ .bashrc中

...
alias watch='vlc'
...

这符合上述execute vlc,但未提供正确的autocompletion [1]

当前行为

  

$ vlc / path / to / mo Tab - > vlc /path/to/movie.avi(顺利完成)

     

$ watch / path / to / mo Tab - > watch / path / to / mo(not autocompleting ..)

正如@GUIDO所提到的,watch是一个内置命令。 这会以某种方式影响自动完成。更改为play有效,但想了解为什么这不起作用,以及如何解决..

注意

类似于How do I get bash completion to work with aliases?

但定义了函数wrap_alias(在我的〜/ .bashrc中)并调用

wrap_alias watch vlc ''

无法修复自动填充问题

1 个答案:

答案 0 :(得分:4)

如果我们看一下命令的完成情况' vlc'我们看到了:

$ complete | grep vlc
complete -F _minimal vlc

所以包装函数是" _minimal"。我们可以对新命令使用相同的内容:

$ alias watch='vlc'
$ complete -F _minimal watch 

和主题必须现在解决。