is there a way to set coloring for cd tab complete?

With readline 6.3 and later you can add

set colored-stats on

to ~/.inputrc.

See https://tiswww.case.edu/php/chet/readline/rluserman.html:

colored-stats

If set to `on', Readline displays possible completions using different colors to indicate their file type. The color definitions are taken from the value of the LS_COLORS environment variable. The default is `off'.

You can use http://geoff.greer.fm/lscolors/ to generate both LS_COLORS (which is used by GNU ls and colored-stats) and LSCOLORS‏ (which is used by BSD ls).


I don't know if it is in bash (the default shell). It is possible in zsh (a more powerful shell than bash, available on most unices including Ubuntu but often not installed by default).

The first time you run zsh, it will offer to create a configuration file (~/.zshrc) for you. The default configuration is a bit barren, for historical compatibility. For colored completion listings, select 2 to configure the “new completion system”, then 2 again to tune it; in the compinstall menu, select 3 to set styles for displaying completions and 3 then 1 to enable colored completions and finally 2 to use the same colors as ls.

If you prefer setting this up by hand, here are the lines you need in your .zshrc:

zstyle ':completion:*' list-colors "${(@s.:.)LS_COLORS}"
autoload -Uz compinit
compinit

The list-colors style tunes colors on file name completions.