我正在尝试从家里的工作电脑复制一些有用的功能。
在工作中,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
”。我没有做任何具体的设置 - 对于 和git
,tmux
我所做的设置分别是“ 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/