Here's an idea: always pipe ls throug a pager! If it's less than a page, it would just print the results (you have to set some flags on less that I don't remember). If it's more, then press d or /term-to-search :)
less -F
Won't page if less than one screenful. zsh users can also do: < filename
(less than character)