gpt4 book ai didi

bash 别名不自动完成与别名相同

转载 作者:行者123 更新时间:2023-11-29 09:47:15 26 4
gpt4 key购买 nike

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

所需的功能

  1. Autocompletion

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

  2. Execute vlc

    watch /path/to/movie.avi Enter # this should run `vlc /path/to/movie.avi

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

~/.bashrc

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

这符合上面的execute vlc,但没有给出正确的autocompletion [ 1 ]

当前行为

$ vlc /path/to/mo Tab --> vlc /path/to/movie.avi ( successfully completing )

$ 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 ''

没有解决自动完成问题

最佳答案

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

$ complete | grep vlc
complete -F _minimal vlc

所以包装函数是“_minimal”。我们可以对新命令使用相同的方法:

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

现在必须解决这个问题。

关于bash 别名不自动完成与别名相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30419786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com