是什么让 bash 自动完成 tmux“子命令”?

是什么让 bash 自动完成 tmux“子命令”?

我正在尝试从家里的工作电脑复制一些有用的功能。

在工作中,bash将有助于自动完成tmux“子命令”:例如,我输入“ tmux new-s<tab>”,bash 会自动完成“ tmux new-session”(我希望“子命令”是正确的术语)。我的家用电脑上不会出现这种情况 - 我该如何在我的家用电脑上进行设置?

我在网上查了一下,发现了一些关于自动完成的参考之内tmux,例如自动完成类似move-window-- 但这不是我想要的命令。我还发现了对名为“bash Complete”的功能的引用 - 但在我的工作电脑上,我在我的文件或目录中
找不到任何引用。tmux~/.bash_completion/etc/bash_completion.d/

有人可以解释我的工作电脑在哪里/如何设置其tmux“子命令”自动完成功能(以便我可以参考/从工作示例中学习),或者我可以/应该如何设置它?

有趣的旁注:我的工作电脑和家用电脑都会自动完成git“子命令”;例如,输入“ git clo<tab>”自动完成为“ git clone”。我没有做任何具体的设置 - 对于 和gittmux我所做的设置分别是“ sudo apt install git”和“ sudo apt install tmux”。

答案1

laktak 的答案适用于我的 Ubuntu 22.04 桌面。我只是跑了:

curl https://raw.githubusercontent.com/imomaliev/tmux-bash-completion/master/completions/tmux > ~/.bash_completion

答案2

pkg-config --variable=completionsdir bash-completion您可以从(/usr/share/bash-completion/completions/)获取系统完成目录

这是设置动态完成的地方:

$ complete -p git
-bash: complete: git: no completion specification
$ git st<TAB>
st       stage    stash    status   sti
$ complete -p git
complete -o bashdefault -o default -o nospace -F __git_wrap__git_main git

如果你想设置 tmux 自动完成,请遵循https://russellparker.me/post/2018/02/16/tmux-bash-autocomplete/

相关内容