"-X" ছাড়াই কীভাবে "কম-এফ" ব্যবহার করবেন, তবে কেবলমাত্র একটি পৃষ্ঠা থাকলে আউটপুট প্রদর্শন করবেন?


11

আমি গিটের পেজারটি টুইট করছি, তবে এটির সাথে আমার কিছু সমস্যা আছে।

আমি যা চাই তা হ'ল:

  1. সর্বদা রঙিন আউটপুট
  2. টাচপ্যাড বা মাউস দ্বারা স্ক্রোলিং
  3. ছাড়ো-যদি এক-স্ক্রীন

এবং আমার বর্তমান কনফিগারেশনটি হ'ল:

$ git config --global core.pager
less -+F -+X -+S

এটি শেষটি ব্যতীত সমস্ত কিছু করে।

তবে, আমি যদি অপসারণ করি তবে -+Fওয়ান-স্ক্রিনের ক্ষেত্রে কোনও আউটপুট থাকবে না। যদি আমি -+Xপাশাপাশি সরিয়ে ফেলি তবে আউটপুট ফিরে আসবে তবে টাচপ্যাড দিয়ে স্ক্রোল করতে পারব না less

উপরে কি সমস্ত প্রয়োজনীয়তা মেটাতে পারে এমন কোনও কর্মক্ষেত্র রয়েছে?


এটি একটি খুব আকর্ষণীয় প্রশ্ন। যখন আমি ব্যবহার করি -F(এক স্ক্রিন হলে প্রস্থান করুন) আমি সর্বদা এটি -X(টার্মক্যাপ আর ডি অক্ষম অক্ষম করুন) এর সাথে মিশ্রিত করে করি , তবে আপনি যেমনটি বলেছেন, এটি মাউসের সাহায্যে স্ক্রোল করার অনুমতি দেয় না। (আমি সন্দেহ করি যে স্ক্রোলিংটি আদৌ সম্ভব -X।) আমি প্রশ্নের শিরোনামটি সংশোধন করেছি, তবে আপনি যদি মনে করেন যে এটি খুব বেশি অর্থ হারিয়ে ফেলেছে তবে ফিরে ফিরে ঘোরান। :)
ওয়াইল্ডকার্ড

উত্তর:


8

হালনাগাদ

tl; dr সমাধান: কম 530 এ আপগ্রেড করুন

Http://www.greenwoodsoftware.com/less/news.530.html থেকে :

-এফ এবং ফাইলটি যদি একটি স্ক্রিনে ফিট করে তবে টার্মিনাল থিম সিকোয়েন্সটি আউটপুট করবেন না।

সুতরাং এই ফিক্সটি সহ -Xআমাদের নিজেরাই ব্যবহার করতে হবে কিনা তা নির্ধারণ করার দরকারও নেই , less -Fকেবল এটি যত্ন নিবে ।

পুনশ্চ. আমি ব্যবহার করি এমন আরও কয়েকটি কম কনফিগার:

export PAGER='less -F -S -R -M -i'
export MANPAGER='less -R -M -i +Gg'
git config --global core.pager 'less -F -S -R -i'
#alias less='less -F -S -R -M -i'

শেষ পর্যন্ত আমি নিজেই একটি র‌্যাপার লিখে শেষ করেছি।

#!/usr/local/bin/bash

# BSD/OSX compatibility
[[ $(type -p gsed) ]] && SED=$(type -p gsed) || SED=$(type -p sed)
CONTEXT=$(expand <&0)
[[ ${#CONTEXT} -eq 0 ]] && exit 0
CONTEXT_NONCOLOR=$( $SED -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g" <<< "$CONTEXT")
LINE_COUNT=$( (fold -w $(tput cols) | wc -l) <<< "$CONTEXT_NONCOLOR" )

[[ $LINE_COUNT -ge $(tput lines) ]] && less -+X -+S -R <<< "$CONTEXT" || echo "$CONTEXT"

বিএসডি / ওএসএক্স ব্যবহারকারীদের ম্যানুয়ালি ইনস্টল করা উচিত gnu-sed। রঙিন কোডগুলি অপসারণ করতে সহায়তা করে এমন আশ্চর্যজনক রিজ এক্সপ্যাক্ট /programming//a/18000433/2487227

আমি এই স্ক্রিপ্টটি /usr/local/bin/pagerতখনও সংরক্ষণ করেছিgit config --global core.pager /usr/local/bin/pager

ওসিডি রোগীদের চিকিত্সা, হুর!


আপনার ফাইলটিতে লাইন মোড়ানো থাকলে এটি কাজ করবে না।
থমাস ডিকি

@ থমাসডিকি আমি মনে করি যে foldএটি হ্যান্ডেল করা উচিত ... তবে, হ্যাঁ, বাগগুলি সম্ভবত ... আপনি দয়া করে দয়া করে একটি উদাহরণ দিতে পারেন?
ফ্রেডেরিক ঝাং

@ থমাসডিকির পেস্ট.কেড.অর্গ.এইচএফ 9 ভিএল 7 ইএস এই আমার জন্য কাজ করেছে
ফ্রেডেরিক জাং

foldট্যাবগুলি সত্যই বুঝতে পারে না। আপনি এটি ব্যবহার করে এটি মেরামত করতে সক্ষম হতে পারেন expand। এটি এখনও এম্বেড থাকা পালানোর ক্রমগুলি পরিচালনা করবে না (যা প্রায়শই এর প্রসঙ্গে বলা হয় git) in
থমাস ডিকি

1
ট্যাবগুলি কেবল তখনই "কাজ করবে" যখন আপনার টার্মিনালের প্রস্থটি একাধিক ট্যাব স্টপগুলি হয়ে থাকে। যখন আমি এটি পরীক্ষা করেছি, আমি লক্ষ্য করেছি যে foldফাঁকা স্থানগুলি ব্যবহার করে মোড়ানো রেখাগুলি সামঞ্জস্য করে না, তবে কেবল কাটার জন্য নিকটতম পয়েন্টটি খুঁজে পেয়েছি। সুতরাং চেহারা বিভ্রান্তিকর হবে।
থমাস ডিকি

0

আমি আমার পেজার হিসাবে নীচের মোড়ক ব্যবহার করি। এটি এখানে দেখানো অন্যান্য মোড়কের মতো অভিনব নয় (কারণ এটি সর্বদা less -Sলম্বা লাইনগুলি কেটে ফেলার জন্য ব্যবহার করে), তবে এটি খুব সহজ। আইটির্ম 2 এর সাথে বেশ ভালভাবে কাজ করছে বলে মনে হচ্ছে।

#!/bin/bash
set -e

text=$(</dev/stdin)
text_lines=$(echo "${text}" | wc -l)
term_lines=$(tput lines)

if [[ $text_lines -lt $term_lines ]]; then
    echo "${text}"
else
    echo "${text}" | less -S -R
fi
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.