#1 enhan: fixed hilite
#2, with hilite
#3 with hilite
#3 fix remember :sort