I use a .profile instead of .bash_profile (etc) files. I've noticed strange behaviour in lxterminal:
OK Scenario:
1. launch lxterminal with command: lxterminal
2. enter: set -o vi
3. tab completion continues to work fine.
Broken Scenario:
1. launch lxterminal with command: lxterminal -l
2. .profile is automatically sourced, and it contains 'set -o vi'
3. tab completion is broken.
I'm running Arch and lxterminal version 0.1.9-1