ভিম ব্যবহার করে একটি সমাধান আছে।
প্রথমত, আপনার একটি ভিম ম্যাক্রো দরকার, যা বেশিরভাগ কাজ করবে। এটি সংরক্ষণ করুন ~/.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()
দ্বিতীয়ত, পেজার অনুকরণ করার জন্য, আপনাকে ভিমে অনুরোধ করতে হবে যাতে এটি হবে:
- স্ট্যান্ডার্ড ইনপুট পড়ুন
- তবে যদি কমান্ড লাইনে যুক্তি দেওয়া হয় তবে সেখানে যা আসে তা পড়ুন
- কেবল পঠন মোডে কাজ করুন
- সমস্ত init স্ক্রিপ্টগুলি এড়িয়ে চলুন, তবে পরিবর্তে উপরে বর্ণিত কম ম্যাক্রো কার্যকর করুন
আমি এটিকে সহায়ক স্ক্রিপ্ট হিসাবে একসাথে রেখেছি ~/bin/vimpager
:
#!/bin/bash
what=-
test "$@" && what="$@"
exec vim -u NONE -R -S ~/.vim/plugin/less.vim -c Less $what
স্ক্রিপ্টটি দিয়ে সম্পাদনযোগ্য করুন chmod +x ~/bin/vimpager
।
তৃতীয়ত, আপনাকে পিএসকিএল-এর জন্য পেজার প্রোগ্রামটি ওভাররাইড করতে হবে। PAGER
বিশ্বব্যাপী পরিবর্তনশীল সেট করবেন না , কারণ এটি কেবলমাত্র পিএসকিএল নয়, অন্যান্য প্রোগ্রামগুলিকেও প্রভাবিত করতে পারে। পরিবর্তে, এটি আপনার ~/.psqlrc
ফাইলে যুক্ত করুন:
\setenv PAGER ~/bin/vimpager
ভয়েলা ! আপনার প্রোফাইল পুনরায় লোড করার পরে, আপনি ফলাফলের উপভোগ করতে পারেন, যা আশানুরূপ আচরণ করা উচিত ভালো (উভয় উল্লম্বভাবে এবং অনুভূমিকভাবে ব্রাউজ কী তীর) এবং দেখুন: । এছাড়াও, ভিমের সমস্ত শক্তি আপনার প্রয়োজন হলে ঠিক সেখানে রয়েছে।