How can I get colors with "ls -l | more"?

Try with less command with repaint(-R) option:

ls --color=always -l | less -R

Try:

ls -lA --color=always | more

Search for the term "escape sequence" in the man page of less. About the colorful stuff, see ANSI escape code # Colors;

There is a detailed solution on askubuntu.com on how to have paged & colored output; the key info is:

ls -C --color=always | less -R