vim: Use color code var
vim: Function in PS1 will cause wrap wrong, cancel SCM branch info

PS1's length is computed when assign, bash var will use value at assign time,
    and function will calculate by length 0, so if function is used in PS1,
    the long command line will end and change newline at next line of command
    prompt, col number is just length of function output.