enhance the terminal controller so that we could handle the cases when the candidate list is too long
fix the 'help' issue: we used to use <command> ? to get help message, however, when there are files with only one character as their names, the '?' will be a wildcard and translated to all those files! so we change to use <command> --help to get the help message.
added a window manager, optimized the code a bit
fix the item-height issue in the terminal controller; fixed a rare defect when the invoke function used in Mac OS outputs are cut ramdonly.