Bold and Underline - not displyed in more/less/vi

I have a script main.shl which has few lines like this

#bold
tput smso
echo "\t\tsome statement\t\t"
tput rmso

I am executing the main.shl from the shell and redirected its output to a separate file like this
$main.shl >main.log 2>&1 &

once after running this script, if I "cat" the main.log, the "some statements" are displayed in Bold.
but if I open it thro "more","less" or "vi", the ESC characters are shown aroun the "Somestatements" and it is not looking bold as it is in"cat"

Why this happens?

If I want to display the bold part even when seeing thro more/less, then what I need to do

Thx,
Ramkrix