fil*_*rem 15 command-line less pager
有没有办法让less
程序在每个显示的页面上重复第一行(或前两行)?
有没有其他寻呼机程序可以做到这一点?
这将是一个杀手级应用程序内的数据库表的浏览,认为mysql
或psql
或gqlplus
...
请参阅本页底部的屏幕截图。我想重复标题行 + 水平 ascii 栏。
fil*_*rem 12
有一个使用 Vim 的解决方案。
首先,您需要一个 Vim 宏,它将完成大部分工作。将其保存在~/.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^M
endfun
command! -nargs=0 Less call Less()
Run Code Online (Sandbox Code Playgroud)
其次,要模拟寻呼机,您需要调用 vim 以便它:
我把它放在一起作为帮助脚本~/bin/vimpager
:
#!/bin/bash
what=-
test "$@" && what="$@"
exec vim -u NONE -R -S ~/.vim/plugin/less.vim -c Less $what
Run Code Online (Sandbox Code Playgroud)
使脚本可执行chmod +x ~/bin/vimpager
。
第三,您需要覆盖 psql 的寻呼程序。不要PAGER
全局设置变量,因为它会影响其他程序,而不仅仅是 psql。相反,将其添加到您的~/.psqlrc
文件中:
\setenv PAGER ~/bin/vimpager
Run Code Online (Sandbox Code Playgroud)
瞧!重新加载您的配置文件后,您可以享受结果,其行为应符合预期(箭头键可垂直和水平浏览),如下所示:. 另外,如果您需要,Vim 的所有功能都在那里。
归档时间: |
|
查看次数: |
2419 次 |
最近记录: |