What allows bash to autocomplete tmux "sub-commands"?

Unix & Linux Asked by StoneThrow on October 30, 2020

I’m trying to replicate some useful features from my work PC at home.

At work, bash will helpfully autocomplete tmux "sub-commands": e.g. I type "tmux new-s<tab>" and bash autocompletes that to "tmux new-session" (I hope "sub-command" is the right term). This doesn’t happen on my home PC — what can I do to set this up on my home PC?

I’ve looked around online and found some references to auto-complete within tmux, e.g. to auto-complete commands like move-window — but that’s not what I’m looking for.
I also found reference to a feature called "bash complete" — but on my work PC, I don’t find any reference to tmux in my ~/.bash_completion file or my /etc/bash_completion.d/ directory.

Can someone please explain either where/how else my work PC might have set up its tmux "sub-command" autocompletion (so that I can refer/learn from a working example), or how I can/should set this up?

Interesting side-note: both my work and home PCs autocomplete git "sub-commands"; e.g. typing "git clo<tab>" autocompletes to "git clone". I didn’t do anything specific to set that up — for both git and tmux, all I did as far as setup was "sudo apt install git" and "sudo apt install tmux", respectively.

One Answer

You can get your systems completion dir from pkg-config --variable=completionsdir bash-completion (/usr/share/bash-completion/completions/)

This is where dynamic completions are set up:

$ 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

If you want to set up tmux auto complete follow

Answered by laktak on October 30, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP