Is there any way to make less program repeat first line (or first 2 lines) on every displayed page?Is there any other pager program which can do this?This would be a killer-app for database table browsing, think mysql or psql or gqlplus...For those of you who don't get the idea, see the screenshot in the bottom of this page. I want to repeat header line + horizontal ascii bar.
pager program like less, able to repeat top N lines
command line;less;pager
There is a solution using Vim on my blog.First, we need a Vim macro, which will do most of the work, I save it in ~/.vim/plugin/less.vim: :Less turn vim into a pager for psql aligned results fun! Less()  set nocompatible  set nowrap  set scrollopt=hor  set scrollbind  set number  execute 'above split'   resize upper window to one line; two lines are not needed because vim adds separating line  execute 'resize 1'   switch to lower window and scroll 2 lines down   wincmd j  execute 'norm! 2^E'   hide statusline in lower window  set laststatus=0   hide contents of upper statusline. editor note: do not remove trailing spaces in next line!  set statusline=\     arrows do scrolling instead of moving  nmap ^[OC zL  nmap ^[OB ^E  nmap ^[OD zH  nmap ^[OA ^Y  nmap <Space> <PageDown>   faster quit (I tend to forget about the upper panel)  nmap q :qa^M  nmap Q :qa^Mendfuncommand! -nargs=0 Less call Less()Second, to emulate a pager, I need to invoke vim so that it will:read standard inputbut if argument is given on command line, read whatever comes therework in read-only modeskip all init scripts, but instead execute Less macro defined aboveI put this together as helper script in ~/bin/vimpager:#!/bin/bashwhat=-test $@ && what=$@exec vim -u NONE -R -S ~/.vim/plugin/less.vim -c Less $whatThird, I need to override environment variable $PAGER, but only for psql (add this to my ~/.bash_aliases):if which vimpager &>/dev/null; then  alias psql='PAGER=vimpager psql';fi