Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash别名与别名不自动完成_Bash_Autocomplete_Alias - Fatal编程技术网

bash别名与别名不自动完成

bash别名与别名不自动完成,bash,autocomplete,alias,Bash,Autocomplete,Alias,我试图用更直观的watch命令替换vlc 所需功能 自动完成 “监视/路径/到/mo”选项卡-->监视/路径/到/movie.avi 执行vlc watch/path/to/movie.avi Enter#这应该运行'vlc/path/to/movie.avi' 目前我正在使用上面的别名todo: ~/.bashrc ... alias watch='vlc' ... 这符合上面的执行vlc,但没有给出正确的自动完成[1] 当前行为 $vlc/path/to/mo选项卡-->vlc/pat

我试图用更直观的watch命令替换vlc

所需功能

  • 自动完成

    “监视/路径/到/mo”选项卡-->监视/路径/到/movie.avi

  • 执行vlc

    watch/path/to/movie.avi Enter#这应该运行'vlc/path/to/movie.avi'

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

    ~/.bashrc

    ...
    alias watch='vlc'
    ...
    
    这符合上面的
    执行vlc
    ,但没有给出正确的
    自动完成
    [1]

    当前行为

    $vlc/path/to/mo选项卡-->vlc/path/to/movie.avi(成功完成)

    $watch/path/to/mo选项卡-->watch/path/to/mo(非自动完成..)

    正如@GUIDO提到的,
    watch
    是一个内置命令。 这在某种程度上影响了自动完成。更改为
    play
    有效,但想了解为什么不起作用,以及如何修复

    注意

    近似

    但是定义函数wrap_alias(在my~/.bashrc中)并调用

    wrap_alias watch vlc ''
    

    没有解决自动完成问题

    如果我们查看命令“vlc”的完成情况,我们会看到:

    $ complete | grep vlc
    complete -F _minimal vlc
    
    因此包装器函数是“_极小”。我们可以对新命令使用相同的命令:

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

    现在必须解决这个问题。

    您是否知道
    watch
    默认情况下在大多数(如果不是所有的话)linux发行版中已经存在一个命令?该答案中的wrap_别名@pasabaporaqui的可能重复并不能解决问题