`কম` বা `আরও` দিয়ে কোনও ফাইল পড়ার সময় আমি কীভাবে বিষয়বস্তুগুলিতে রঙ পেতে পারি?


415

যখন আমি লিনাক্সে একটি ফাইল কমান্ড সহ পড়ি lessবা more, আমি কীভাবে সামগ্রীগুলিতে রঙ পেতে পারি?


5
এটি সম্পর্কিত বলে মনে হচ্ছে: superuser.com/questions/36022/less-and-grep-color - এটি কি সহায়তা করে?
জোনিক

7
এই প্রশ্নের শিরোনামটি খুব বিভ্রান্তিকর। এই পৃষ্ঠায় অবতরণকারী অনেকে রঙিন ইস্যুটির সমাধানের প্রত্যাশা করে যা রঙিন আউটপুট দিয়ে কোনও আদেশটি পাইপ করার সময় আপনি পাবেন less: রঙগুলি হারিয়ে যায়। (যে "বংশীধ্বনিতুল্য বিষয়" উত্তর জড়িত less -R, unbufferইত্যাদি) কিন্তু এতে ACTUAL প্রশ্ন বোঝায় একটি ফাইল খোলার ! - অস্পষ্টতাটি মূলত প্রশ্নের শিরোনামে থাকে তবে এর বাইরেও আইএমএইচও প্রশ্নটি এখনও খুব বিস্তৃত: "একটি ফাইল পড়ুন" যে কোনও ফাইল (সম্ভবত সরল পাঠ্য) উল্লেখ করতে পারে । (ভাল, "রঙগুলিতে বিষয়বস্তু পান" সম্ভবত সিনট্যাক্স হাইলাইটিংয়ের উল্লেখ রয়েছে))
myrdd

আমাকে নিজের সংশোধন করতে হবে, ১৪ টি উত্তরের মধ্যে কেবল তিনটি (বা 4) ওপির আসল প্রশ্নটি অনুপস্থিত: ক্রিস্টোফিড , পুনেতে এবং ওলজব্বোর উত্তর ; এবং হয়ত jbbr । তবুও, এই উত্তরগুলির মধ্যে দু'টি সর্বোচ্চ ভোট প্রাপ্ত তিনটির অংশ।
myrdd

@ এমআরডিডি "সিনট্যাক্স হাইলাইটিং" এর সাথে সম্পর্কিত শব্দটি ... (এটি রং দেখানোর বিষয়ে জিজ্ঞাসা করে, রং যুক্ত করে না?) less -Rপাশাপাশি ফাইলগুলিতেও কাজ করবে, যেমনls --color=always > /tmp/file && less -R /tmp/file
গার্ট ভ্যান ডান বার্গ

1
@ মাইআরডিডি সম্ভবত প্রশ্নটি "কী জিজ্ঞাসা করা হচ্ছে তা অস্পষ্ট" হিসাবে বন্ধ হওয়ার পক্ষে সবচেয়ে বেশি অর্থবোধ করতে পারে যেহেতু দুজনের যে কোনও একটিই জিজ্ঞাসা করা প্রশ্ন সম্ভবত এর সদৃশ হিসাবে চিহ্নিত হবে ... (এবং দুজনের যে কোনওটিরও উত্তর হ্রাস পেতে পারে ভোটার কীভাবে এটি ব্যাখ্যা করে তার উপর ভিত্তি করে ...) (আমার ব্যবহারের ক্ষেত্রে একটি লগ ফাইল ছিল (বিরক্তিকরভাবে এতে রঙের পালানোর কোড রয়েছে))
গার্ট ভ্যান ডান বার্গ

উত্তর:


149

আপনি পিগমেনটিজ শক্তিটি কম ব্যবহার করতে পারেন - স্বয়ংক্রিয়ভাবে! (হাতে পাইপ লাগানোর দরকার নেই।)

pygmentsআপনার প্যাকেজ ম্যানেজার বা পাইপ দিয়ে ইনস্টল করুন (সম্ভবত বলা হয়ে থাকে python-pygments) বা এটি এখানে পান http://pyitions.org/download/

একটি ফাইল লিখুন ~/.lessfilter

#!/bin/sh
case "$1" in
    *.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
    *.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
    *.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
    *.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
        pygmentize -f 256 "$1";;

    .bashrc|.bash_aliases|.bash_environment)
        pygmentize -f 256 -l sh "$1";;

    *)
        if grep -q "#\!/bin/bash" "$1" 2> /dev/null; then
            pygmentize -f 256 -l sh "$1"
        else
            exit 1
        fi
esac

exit 0

আপনার .bashrcঅ্যাড

export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'

এছাড়াও, আপনি ~/.lessfilterচালিয়ে এক্সিকিউটেবল করতে হবে

chmod u+x ~/.lessfilter

দেবিয়ানের উপর পরীক্ষিত।

আপনি ধারণা পেতে। এটি অবশ্যই আরও উন্নত করা যেতে পারে, আরও এক্সটেনশন গ্রহণ করে বাশ ব্যতীত অন্য দোভাষীদের জন্য শেবাংকে বিশ্লেষণ করে। এর জন্য অন্যান্য কয়েকটি উত্তর দেখুন।

পাইগমেন্টস নির্মাতাদের কাছ থেকে একটি পুরানো ব্লগ পোস্ট থেকে ধারণাটি এসেছে , তবে মূল পোস্টটি আর নেই।


6
আপনি যদি সোর্স কোড ফাইলগুলিতে রঙিন করতে চান তবে আপনার চালনা করে ~ / .lessfilter কার্যকর করতেও হবে chmod u+x ~/.lessfilter। আপনার পাইগমেনটাইজ ( পাইগমেন্টস . org / ডাউনলোড ) ইনস্টল করাও দরকার ।
সের্গেই বেলোজোরভ

কেউ কি নিশ্চিত করতে পারে যে আমি যেমন একটি কমান্ড কার্যকর করি তখন এটি আমার পক্ষে কার্যকর হয় নাls -l | less
puk

7
@ পুক আপনি যেমন কিছু করতে পারেন ls --color=always -l | less -R। স্পষ্টতই অনেকগুলি টাইপ করতে হবে তবে আপনি এটির মতো কোনও উপকরণ দিতে পারেন ll। যদি আপনি কোনও অতিরিক্ত লাইব্রেরি ব্যবহার করতে না চান তবে তা।
ফিল্ট

2
উত্তরে @ SergeyByelozyorov এর মন্তব্য যুক্ত করেছে।
andrybak

2
আমার সম্পাদনা প্রত্যাখ্যান করা হয়েছিল তাই আমি অনুমান করি পরিবর্তে এটি মন্তব্য হিসাবে পোস্ট করব: পরোক্ষভাবে আদেশের প্রস্থান কোডগুলি পরীক্ষা করবেন না। আপনি if grep -q "#\!/bin/bash" "$1"( -qদমন স্ট্যান্ডার্ড আউটপুট) ব্যবহার করতে পারেন । আপনি এর সাথে স্ট্যান্ডার্ড ত্রুটি পুনর্নির্দেশ করতে চাইতে পারেন 2>/dev/null
টম ফেনেক

503

নিম্নলিখিত চেষ্টা করুন:

less -R

থেকে man less:

-r অথবা --raw-control-chars

"কাঁচা" নিয়ন্ত্রণ অক্ষরগুলি প্রদর্শিত হওয়ার কারণ দেয়। (...)

-R অথবা --RAW-CONTROL-CHARS

পছন্দ করুন -r, তবে কেবল এএনএসআই "রঙ" অব্যাহতি ক্রমগুলি "কাঁচা" আকারে আউটপুট। (...)


16
ফাইলটিতে স্বয়ংক্রিয়ভাবে এস্কেপ কোড থাকাতে এটি কার্যকর হয় যা প্রদর্শনের প্রয়োজন হবে।
নাইট্রোডিস্ট

1
আমি কম-আরআর সম্পর্কে জানতাম তবে "/" ব্যবহার করে ফাইলটিতে অনুসন্ধান করা ভুল লাইনগুলি ধরে রাখে। -আর আরও ভাল কাজ করে বলে মনে হচ্ছে। ভকভগক.
আমোস শাপিরা

54
এটি লক্ষ করা উচিত যে বেশিরভাগ প্রোগ্রামগুলি isatty(2)তাদের স্ট্যান্ডার্ড আউটপুটটি টার্মিনাল কিনা তা যাচাই করার জন্য সিস্কল ব্যবহার করে এবং সাধারণত যদি তা না হয় তবে বর্ণযুক্ত আউটপুট অক্ষম করে। যে কোনও পাইপের জন্য কম, isatty0. ফিরে আসবে this এটি কাজ করে কিনা তা পরীক্ষা করে দেখার জন্যecho -e '\x1b[32;1mtest\x1b[m' | less -r
mic_e

11
এই উত্তর আসলে কিছু পরীক্ষা করে চূড়ান্ত নয়।
মাইকেল উলফ

18
আপনি -Rইতিমধ্যে lessএটি অর্জন করার জন্য খুললে আপনি টাইপ করতে পারেন ।
Scz

138

আমি অন্য পোস্টে উত্তর পেয়েছি: কম এবং গ্রেপ: গ্রেপ থেকে কম কোনও পাইপ ব্যবহার করার সময় রঙিন ফলাফল পাওয়া যায়

আপনি যখন চালান কেবল grep --colorএটি বোঝায় grep --color=autoযে আউটপুটটি টার্মিনাল কিনা তা সনাক্ত করে এবং যদি রঙ সক্ষম করে। যাইহোক, এটি যখন পাইপ সনাক্ত করে এটি রঙিন অক্ষম করে। নিম্নলিখিত আদেশ:

grep --color=always "search string" * | less -R

রঙটি সর্বদা সক্ষম করবে এবং স্বয়ংক্রিয় সনাক্তকরণকে ওভাররাইড করবে এবং আপনি কম রঙে হাইলাইটিং পাবেন।

সতর্কতা: --color=alwaysএকটি উপনাম হিসাবে রাখবেন না , এটি কখনও কখনও জিনিসগুলি ভেঙে দেয়। এজন্য একটি --color=autoবিকল্প রয়েছে।


6
সুন্দর ধন্যবাদ. এটি ছাড়াও আমারও -Rবিকল্প হিসাবে ব্যবহার করা দরকার less
nnot101

10
আমি বিশ্বাস করি grep -Rপুনরাবৃত্ত অনুসন্ধান সুনির্দিষ্ট করার জন্য। রঙগুলি সঠিকভাবে ফিরিয়ে আউট করার less -Rজন্য প্রয়োজনীয় lessgrep --color=always [grep cmds] | less -Rওএস এক্স 10.7.3 এ আমার জন্য কাজ করে!
স্টিভেন লু

@ naught101 @ স্টিভেন লু সম্পাদনা করেছেন, যদিও মনে হচ্ছে কিছু লোকের ব্যবহারের প্রয়োজন হবে না less -R(মূল পোস্টের লেখকের মতে, যাইহোক)।
jtpereyda

2
গ্রেপকে কেবল পাইপ কম -আর কমান্ডটি জানাতে এবং তারপরে কেবল রঙ করতে দেওয়া আছে কি? সুতরাং, আমাদের সর্বদা - রঙ = সবসময় এবং কম-আর লাগাতে হবে না।
এ-লেটব্বি

1
এটি এখন পর্যন্ত সবচেয়ে সহজ কাজ করার উত্তর। ধন্যবাদ!
ড্যানি স্ট্যাপল

36

viewপরিবর্তে ব্যবহার করুন less। এটি কেবল vimপঠন মোডে ফাইলটি খুলবে ।

এটি কার্যত রঙিন less: এমন পেজার যেখানে আপনি অনুসন্ধান করতে পারেন /(এবং আরও অনেক কিছু)। একমাত্র অপূর্ণতা হ'ল আপনি বাইরে বেরোতে পারবেন না qতবে আপনার প্রয়োজন:q

এছাড়াও, আপনি যেমন রঙিন পান vim(যেহেতু আপনি বাস্তবে ব্যবহার করছেন vim)।


বড় ফাইলগুলির পারফরম্যান্স কেমন? ভিম সিনট্যাক্স হাইলাইটিং বিশাল ফাইলগুলিতে ধীর হতে পারে।
pihentagy

'বিগ' এর জন্য আপনার মূল্য কী তা আমি জানি না, তবে একটি ~ 10000 লাইনের ফাইল খোলাই তাত্ক্ষণিক, ভিতরে অনুসন্ধান অন্তর্ভুক্ত।
রিকার্ডো গাল্লি

1
আমি উঁচু হয়েছি (আমি জানতাম না view) তবে আরেকটি খারাপ দিক হ'ল জে / কে / আপ / ডাউন তাত্ক্ষণিকভাবে স্ক্রোল করে না, যেহেতু একটি কার্সার রয়েছে।
টাইলার কলিয়ার

7
নোট করুন যে আপনি view -পাইপ করার সময় যুক্ত করতে হতে পারে
user45909

6
vimএকটি সম্পাদক, যা সম্পূর্ণ ফাইলকে মেমরিতে লোড করে, যেখানে lessপেজার থাকে, কেবল ফাইলটিকে আংশিকভাবে মেমরিতে লোড করা হয়। আপনি বিশাল ফাইলগুলির সাথে পার্থক্যটি জানতে পারবেন।
sjas

16

রঙ দেখানোর জন্য কম বলতে এটিকে -আর দিয়ে কল করুন:

less -R

দুর্ভাগ্যক্রমে কিছু প্রোগ্রাম সনাক্ত করে যে তাদের স্টাডাউটটি টার্মিনাল নয় এবং রঙ অক্ষম করে - যেমন প্যাকম্যান (আর্চ লিনাক্স প্যাকেজ ম্যানেজার)।

এই ক্ষেত্রে এটির ব্যবহার সম্ভব unbuffer:

unbuffer <command> | less -R

প্যাকম্যান ব্যবহারের উদাহরণ

unbuffer pacman -Ss firefox | less -R

unbufferকমান্ড সাধারণত প্যাকেজের অংশ expect(আর্চ লিনাক্স, Debian / Ubuntu-) অথবা expect-dev(Debian / Ubuntu- উত্তরাধিকার সংস্করণ)।

সম্পূর্ণতার জন্য প্রশ্নের উত্তর দিতে:

অন্যরা ইতিমধ্যে উত্তর হিসাবে, pygmentizeউত্স কোড রঙ করার জন্য দুর্দান্ত। এটি প্রয়োজন হয় না unbuffer। সবচেয়ে সহজ কল:

pygmentize someSource.cpp | less -R

2
unbufferউবুন্টু ব্যবহার করতে ,sudo apt install expect
উইসবাকী

এই উত্তরের আরও উন্নতি প্রয়োজন।
থমাস ডিগানান

বুট ত্রুটিগুলি পরীক্ষা করার জন্য আমি ডেমস্যাগ আউটপুটটি পাইপ করার চেষ্টা করছিলাম তবে আমি আনবফার ব্যবহার না করলে রংগুলি কাজ করে না, যা আমার থেকে হেককে বিভ্রান্ত করে তোলে: unbuffer dmesg | less -Rপ্রত্যাশার মতো কাজ করে।
পিবিএইচজে

15

pygmentizeকোনও এক্সটেনশান প্রকার পরীক্ষা না -gকরে পাঠানো ফাইলগুলির জন্য দরকারী যে লেক্সারটি স্বয়ংক্রিয়ভাবে অনুমান করা যায় সেই বিকল্পটিকে সমর্থন করে STDIN

এটি ব্যবহার করে, আপনাকে কেবলমাত্র .bashrcকোনও অতিরিক্ত স্ক্রিপ্ট ছাড়াই নিম্নলিখিত 2 টি রফতানি সেট করতে হবে :

export LESS='-R'
export LESSOPEN='|pygmentize -g %s'

4
সংক্ষিপ্ত এবং কার্যকর। আমি একটি উপনাম সংজ্ঞায়িত করতে পছন্দ করি, কারণ মাঝে মাঝে কম ভাল হয়। সুতরাং: ওরফে লেসক = 'LESS = "- আর" LESSOPEN = "| পাইগম্যানটিজ -g% s" কম "
টিয়াগো

9

এই রঙটির অর্থ কী হওয়া উচিত আপনি তা বলেন নি, উদাহরণস্বরূপ একটি পাঠ্য ফাইলের জন্য রঙগুলি কী হওয়া উচিত?

আপনি যা চান সেটি উত্স কোডের জন্য সিনট্যাক্স হাইলাইট করা হলে আপনার একটি উত্স কোড হাইলাইটার লাগবে। আমি কখনও কখনও ব্যবহার pygmentize ভালো

pygmentize file.cpp | less

অথবা

pygmentize file.cpp | more

আশেপাশে অন্যান্য হাইলাইটার রয়েছে।

এটি বেশ দ্রুত। আপনার যদি আপত্তি উঠতে আপত্তি না vimথাকে তবে একটি পঠনযোগ্য মোড রয়েছে যা আপনাকে যদি বাকী থাকে তবে আপনাকে সিনট্যাক্স হাইলাইট করতে পারে vim

view file.cpp

অথবা বিকল্পভাবে churnd এর উত্তর দেখুন।


5

এটি আরও একটি পাইগমেন্ট- ভিত্তিক উত্তর, বেশ কয়েকটি বড় উন্নতি সহ:

  • বিরতি lesspipeবা lessfileফিল্টার না
  • একাধিক ইনপুট সাথে কাজ করে less
  • শেবাং শিরোনাম থেকে স্ক্রিপ্ট প্রকারটি সঠিকভাবে বিশ্লেষণ করে
  • পিগমেন্টস দ্বারা লেসযোগ্য সমস্ত 434 ফাইল প্রকারের জন্য কাজ করে
  • রঙ স্কিমটি পরিবেশের পরিবর্তনশীল হিসাবে প্যারামিটারাইজড

পাইগমেন্টস এবং গাওক ইনস্টল করুন

sudo apt-get install python-pygments python3-pygments gawk

পরিবেশ পরিবর্তনশীল সেট করুন Set

তা পরীক্ষা করুন lesspipeবা lessfileইতিমধ্যেই সক্ষম হয়:

echo $LESSOPEN

আপনি যদি সেখানে কোনও প্রোগ্রাম উল্লেখ না করে থাকেন তবে lesspipeতা ইনস্টল করা আছে তা নিশ্চিত করুন (বেশিরভাগ ডিস্ট্রোস এটির সাথে আসে)।

নিম্নলিখিতগুলিতে এতে যুক্ত করুন ~/.bashrc:

# sets LESSOPEN and LESSCLOSE variables
eval "$(SHELL=/bin/sh lesspipe)"

# interpret color characters
export LESS='-R'

# to list available styles: `pygmentize -L styles`
export PYGMENTIZE_STYLE='paraiso-dark'

# optional
alias ls='ls --color=always'
alias grep='grep --color=always'

আপনি যদি না চান lesspipeতবে evalবিবৃতিটি এর সাথে প্রতিস্থাপন করুন :

export LESSOPEN='|~/.lessfilter %s'

সৃষ্টি ~/.lessfilter

নিম্নলিখিত কোড যুক্ত করুন এবং ফাইলকে কার্যকর করতে সক্ষম করুন: chmod u+x ~/.lessfilter

#!/bin/bash
for path in "$@"; do
    # match by known filenames
    filename=$(basename "$path")
    case "$filename" in
        .bashrc|bash.bashrc|.bash_aliases|.bash_environment|.bash_profile|\
        .bash_login|.bash_logout|.profile|.zshrc|.zprofile|.zshrc|.zlogin|\
        .zlogout|zshrc|zprofile|zshrc|zlogin|zlogout|.cshrc|.cshdirs|\
        csh.cshrc|csh.login|csh.logout|.tcshrc|.kshrc|ksh.kshrc)
            # shell lexer
            pygmentize -f 256 -O style=$PYGMENTIZE_STYLE -l sh "$path"
            ;;
        .htaccess|apache.conf|apache2.conf|Dockerfile|Kconfig|external.in*|\
        standard-modules.in|nginx.conf|pacman.conf|squid.conf|termcap|\
        termcap.src|terminfo|terminfo.src|control|sources.list|CMakeLists.txt|\
        Makefile|makefile|Makefile.*|GNUmakefile|SConstruct|SConscript|\
        .Rhistory|.Rprofile|.Renviron|Rakefile|Gemfile|PKGBUILD|autohandler|\
        dhandler|autodelegate|.vimrc|.exrc|.gvimrc|vimrc|exrc|gvimrc|todo.txt)
            # filename recognized
            pygmentize -f 256 -O style=$PYGMENTIZE_STYLE "$path"
            ;;
        *)
            ext=$([[ "$filename" = *.* ]] && echo ".${filename##*.}" || echo '')
            case "$ext" in
                .as|.mxml|.bc|.g|.gd|.gi|.gap|.nb|.cdf|.nbp|.ma|.mu|.at|.run|\
                .apl|.adl|.adls|.adlf|.adlx|.cadl|.odin|.c-objdump|.s|\
                .cpp-objdump|.c++-objdump|.cxx-objdump|.d-objdump|.S|.hsail|\
                .ll|.asm|.ASM|.objdump-intel|.objdump|.tasm|.au3|.ahk|.ahkl|\
                .bb|.decls|.bmx|.bas|.monkey|.BAS|.bst|.bib|.abap|.ABAP|.cbl|\
                .CBL|.cob|.COB|.cpy|.CPY|.gdc|.maql|.p|.cls|.c|.h|.idc|.cpp|\
                .hpp|.c++|.h++|.cc|.hh|.cxx|.hxx|.C|.H|.cp|.CPP|.ino|.clay|\
                .cu|.cuh|.ec|.eh|.mq4|.mq5|.mqh|.nc|.pike|.pmod|.swg|.i|.vala|\
                .vapi|.capnp|.chpl|.icl|.dcl|.cf|.docker|.ini|.cfg|.inf|\
                .pc|.properties|.reg|.tf|.pypylog|.cr|.csd|.orc|.sco|.css|\
                .less|.sass|.scss|.croc|.d|.di|.smali|.jsonld|.json|.yaml|\
                .yml|.dpatch|.darcspatch|.diff|.patch|.wdiff|.boo|.aspx|.asax|\
                .ascx|.ashx|.asmx|.axd|.cs|.fs|.fsi|.n|.vb|.als|.bro|.crmsh|\
                .pcmk|.msc|.pan|.proto|.pp|.rsl|.sbl|.thrift|.rpf|\
                .dylan-console|.dylan|.dyl|.intr|.lid|.hdp|.ecl|.e|.elm|.ex|\
                .exs|.erl|.hrl|.es|.escript|.erl-sh|.aheui|.befunge|.bf|.b|\
                .camkes|.idl4|.cdl|.cw|.factor|.fan|.flx|.flxh|.frt|.f|.F|\
                .f03|.f90|.F03|.F90|.PRG|.prg|.go|.abnf|.bnf|.jsgf|.cyp|\
                .cypher|.asy|.vert|.frag|.geo|.plot|.plt|.ps|.eps|.pov|.inc|\
                .agda|.cry|.hs|.idr|.kk|.kki|.lagda|.lcry|.lhs|.lidr|.hx|\
                .hxsl|.hxml|.sv|.svh|.v|.vhdl|.vhd|.dtd|.haml|.html|.htm|\
                .xhtml|.xslt|.pug|.jade|.scaml|.xml|.xsl|.rss|.xsd|.wsdl|\
                .wsf|.xpl|.pro|.ipf|.nsi|.nsh|.spec|.i6t|.ni|.i7x|.t|.io|\
                .ijs|.coffee|.dart|.eg|.js|.jsm|.juttle|.kal|.lasso|\
                .lasso[89]|.ls|.mask|.j|.ts|.tsx|.jl|.aj|.ceylon|.clj|\
                .cljs|.golo|.gs|.gsx|.gsp|.vark|.gst|.groovy|.gradle|.ik|\
                .java|.kt|.pig|.scala|.xtend|.cpsa|.cl|.lisp|.el|.hy|.lsp|.nl|\
                .kif|.rkt|.rktd|.rktl|.scm|.ss|.shen|.xtm|.cmake|.mak|.mk|\
                .[1234567]|.man|.md|.css.in|.js.in|.xul.in|.rst|.rest|.tex|\
                .aux|.toc|.m|.sci|.sce|.tst|.ml|.mli|.mll|.mly|.opa|.sml|.sig|\
                .fun|.bug|.jag|.mo|.stan|.def|.mod|.mt|.ncl|.nim|.nimrod|.nit|\
                .nix|.cps|.x|.xi|.xm|.xmi|.mm|.swift|.ooc|.psi|.psl|.G|.ebnf|\
                .rl|.treetop|.tt|.adb|.ads|.ada|.pas|.dpr|.pwn|.sp|.pl|.pm|\
                .nqp|.p6|.6pl|.p6l|.pl6|.6pm|.p6m|.pm6|.php|.php[345]|.zep|\
                .praat|.proc|.psc|.lgt|.logtalk|.prolog|.pyx|.pxd|.pxi|.dg|\
                .py3tb|.py|.pyw|.sc|.tac|.sage|.pytb|.qvto|.Rout|.Rd|.R|.rq|\
                .sparql|.ttl|.r|.r3|.reb|.red|.reds|.txt|.rnc|.graph|\
                .instances|.robot|.fy|.fancypack|.rb|.rbw|.rake|.gemspec|\
                .rbx|.duby|.rs|.rs.in|.SAS|.sas|.applescript|.chai|.ezt|\
                .mac|.hyb|.jcl|.lsl|.lua|.wlua|.moo|.moon|.rexx|.rex|.rx|\
                .arexx|.sh|.ksh|.bash|.ebuild|.eclass|.exheres-0|.exlib|.zsh|\
                .sh-session|.shell-session|.bat|.cmd|.fish|.load|.ps1|.psm1|\
                .tcsh|.csh|.ns2|.st|.smv|.snobol|.rql|.sql|.sqlite3-console|\
                .do|.ado|.scd|.tcl|.rvt|.ng2|.tmpl|.spt|.cfc|.cfm|.cfml|\
                .evoque|.kid|.handlebars|.hbs|.phtml|.jsp|.liquid|.mao|.mhtml|\
                .mc|.mi|.myt|.rhtml|.tpl|.ssp|.tea|.twig|.vm|.fhtml|.sls|\
                .feature|.tap|.awk|.vim|.pot|.po|.weechatlog|.todotxt|.thy|\
                .lean|.rts|.u|.vcl|.bpl|.sil|.vpr|.cirru|.duel|.jbst|.qml|\
                .qbs|.slim|.xqy|.xquery|.xq|.xql|.xqm|.whiley|.x10)
                    # extension recognized
                    pygmentize -f 256 -O style=$PYGMENTIZE_STYLE "$path"
                    ;;
                *)
                    # parse the shebang script header if it exists
                    lexer=$(head -n 1 "$path" |grep "^#\!" |awk -F" " \
'match($1, /\/(\w*)$/, a) {if (a[1]!="env") {print a[1]} else {print $2}}')
                    case "$lexer" in
                        node|nodejs)
                            # workaround for lack of Node.js lexer alias
                            pygmentize -f 256 -O style=$PYGMENTIZE_STYLE \
                                -l js "$path"
                            ;;
                        "")
                            exit 1
                            ;;
                        *)
                            pygmentize -f 256 -O style=$PYGMENTIZE_STYLE \
                                -l $lexer "$path"
                            ;;
                    esac
                    ;;
            esac
            ;;
    esac
done
exit 0

এই পদ্ধতির সম্পর্কে একটি ত্রুটি হল পাইগমেন্টগুলি একটি পাইথন প্রোগ্রাম এবং তাই শেল সেশনের সময় প্রথম ব্যবহারের ক্ষেত্রে, "কোল্ড স্টার্ট" দেরি হয়। পরবর্তী অনুরোধগুলি আরও দ্রুত।
জো কোডার

নিস! সত্যিই ব্যাপক।
দারিও সিডল

4

জিএনইউ উত্স-হাইলাইট ব্যবহার করুন ; এটি aptথাকলে আপনি এটি ইনস্টল করতে পারেন বা অন্যথায় উত্স থেকে ইনস্টল করতে পারেন। তারপরে কম দিয়ে সেট আপ করার জন্য সোর্স-হাইলাইটের ডকুমেন্টেশনগুলির সহায়তায় কম "একটি ইনপুট প্রিপ্রেসেসর" সেটআপ করুন :

এটি কনস্ট্যান্টাইন সেরিব্রায়ি দ্বারা প্রস্তাবিত হয়েছিল। স্ক্রিপ্ট src-hilite-lesspipe.sh উত্স-হাইলাইটের সাথে একসাথে ইনস্টল করা হবে। আপনি নিম্নলিখিত পরিবেশের ভেরিয়েবল ব্যবহার করতে পারেন:

 export LESSOPEN="| /path/to/src-hilite-lesspipe.sh %s"
 export LESS=' -R '

এইভাবে, আপনি যখন কোনও ফাইল ব্রাউজ করতে কম ব্যবহার করেন, যদি এটি উত্স-হাইলাইট দ্বারা পরিচালিত একটি উত্স ফাইল হয়, তবে এটি স্বয়ংক্রিয়ভাবে হাইলাইট হবে।

জাভিয়ের-এমমানুয়েল ভিনসেন্ট সম্প্রতি এএনএসআই রঙের স্কিমের একটি বিকল্প সংস্করণ সরবরাহ করেছে, এসক্র 256 st স্টাইল: কিছু টার্মিনাল 256 রঙ পরিচালনা করতে পারে। জাভিয়ার একটি স্ক্রিপ্টও সরবরাহ করেছিল যা আপনার টার্মিনালটি কত রঙগুলি পরিচালনা করতে পারে তা পরীক্ষা করে এবং সেই ক্ষেত্রে 256 রূপটি ব্যবহার করে। স্ক্রিপ্টটিকে উত্স-হাইলাইট-esc.sh বলা হয় এবং এটি অন্যান্য বাইনারিগুলির সাথে একসাথে ইনস্টল করা হবে।


3

অন্য উত্তরের প্রসারিত করতে, আপনি কেবলমাত্র কিছু বিহীন .lessfilter ফাইল পরিবর্তন করে এক্সটেনশন না থাকা আপনার সমস্ত স্ক্রিপ্ট না থাকলে এটি বেশিরভাগের জন্য কার্যকর করতে পারেন:

#!/bin/sh
    case "$1" in
    *.awk|*.groff|*.java|*.js|*.m4|*.php|*.pl|*.pm|*.pod|*.sh|\
    *.ad[asb]|*.asm|*.inc|*.[ch]|*.[ch]pp|*.[ch]xx|*.cc|*.hh|\
    *.lsp|*.l|*.pas|*.p|*.xml|*.xps|*.xsl|*.axp|*.ppd|*.pov|\
    *.diff|*.patch|*.py|*.rb|*.sql|*.ebuild|*.eclass)
        pygmentize -f 256 "$1";;
    .bashrc|.bash_aliases|.bash_environment)
        pygmentize -f 256 -l sh "$1"
        ;;
    *)
        scriptExec=$(head -1 "$1" |grep "^#\!" |awk -F" " '{print $1}')
        scriptExecStatus=$?
        if [ "$scriptExecStatus" -eq "0" ]; then
            lexer=$(echo $scriptExec |awk -F/ '{print $NF}')
            pygmentize -f 256 -l $lexer "$1"
        else
            exit 1
        fi
esac

exit 0

আপনাকে এখনও .bashrc এ দুটি ভেরিয়েবল যুক্ত করতে হবে:

export LESS='-R'
export LESSOPEN='|~/.lessfilter %s'

এবং আপনাকে এখনও .বিহীন ফিল্টার কার্যকর করতে সক্ষম হবেন:

$ chmod 700 ~/.lessfilter

এছাড়াও আমি এটি যুক্ত করতে চেয়েছিলাম যে ডেবিয়ানের অধীনে পাইগমেন্টস প্যাকেজটিকে পাইথন-পাইগমেন্ট বলে। প্রথমে এটি সনাক্ত করতে আমার সমস্যা হয়েছিল কারণ "পাইগমেন্টস" হিসাবে "পিগমেন্টস" হিসাবে স্পষ্টত ভুল বানানটি আমার কাছে ইঙ্গিতের পক্ষে যথেষ্ট ছিল না যে এটি প্যাকেজটি প্যাকেজ ম্যানেজারের দ্বারা "পাইথন-" উপসর্গযুক্ত হতে পারে was


2
2 মন্তব্য: 1) উন্নতির জন্য ধন্যবাদ। 2) "ভোট দেওয়া সেরা উত্তর" এর মতো বাক্যাংশগুলি দুর্দান্ত নয়; যে (আসলে, যদি এই যে উত্তর তুলনায় অনেক ভাল, পরিবর্তন হতে পারে এই পোস্টটিকে শীর্ষে উত্তর হয়ে পারে, যা এটি শুধু বিভ্রান্তিকর হবে হয়তো শুধু বলতে বা "captaincomic এর উত্তর" "অন্য উত্তর উপর প্রসারিত" বাতলান।?
সিপাস্ট

2

আপনি mostইউটিলিটি ব্যবহারের বিষয়টি বিবেচনা করতে পারেন যা রঙ-বান্ধব বিকল্প lessএবং এর জন্য more


আপনি আমাদের একটি উদাহরণ দেখাতে পারেন? আমি এখানে চেষ্টা করেছি, এবং আউটপুট কালো এবং সাদা ছিল।
ড্যানিলো

আপনার ইনপুটটিতে রঙ থাকতে হবে। প্রথম একটি colorised নমুনা (যেমন উত্পাদন ccze -A </var/log/dpkg.log, ls -1 --color /var/log) তারপর, এটা নল থেকে most: ls -1 --color /var/log | most
নভেম্বর

হ্যাঁ, আমি ব্যবহৃত: git status | less --color,git status | most --color
Danilo

আমি বেশিরভাগ, বেশি, কম এবং সমস্ত সরঞ্জাম কালো এবং সাদা দেখায়
ড্যানিলো

আপনার কমান্ডটি বা অন্যকে পাইপ দেওয়ার আগে রঙ তৈরি করে তা নিশ্চিত করুন less। আপনার টার্মিনাল এমুলেটরটি আউটপুট রঙ করতে পারে তা নিশ্চিত করুন। TERMপরিবেশের পরিবর্তনশীল পরীক্ষা করুন । আরও পড়ুন unix.stackexchange.com/questions/148/... যখন এই ধরনের সম্ভাব্য ব্যবহারের আধুনিক গনুহ + + লিনাক্স ডিস্ট্রিবিউশন ডেবিয়ান । সার্চ ইঞ্জিন (যেমন ব্যবহার করুন duckduckgo.com startpage.com উত্তর খুঁজে পাওয়ার)। মনে রাখবেন যে মন্তব্যগুলি আলোচনার জন্য নয়।
একমাত্র কাজ

2

কম অভিজ্ঞতার উন্নতি সম্পর্কে আমার সম্পূর্ণ ব্লগ পোস্টটি থেকে সংহত: https://www.topbug.net/blog/2016/09/27/make-gnu-less-more-powerful/

রঙিন ম্যানাপেজগুলির জন্য, আপনার .bashrcবা নিম্নলিখিতগুলিতে নিম্নলিখিতটি যুক্ত করুন .zshrc:

export LESS_TERMCAP_mb=$'\E[1;31m'     # begin bold
export LESS_TERMCAP_md=$'\E[1;36m'     # begin blink
export LESS_TERMCAP_me=$'\E[0m'        # reset bold/blink
export LESS_TERMCAP_so=$'\E[01;44;33m' # begin reverse video
export LESS_TERMCAP_se=$'\E[0m'        # reset reverse video
export LESS_TERMCAP_us=$'\E[1;32m'     # begin underline
export LESS_TERMCAP_ue=$'\E[0m'        # reset underline

সিনট্যাক্স হাইলাইট করার জন্য, lesspipe.shনিজের লেখার পরিবর্তে এটি হ্যান্ডেল করার জন্য একটি বিদ্যমান শক্তিশালী ব্যবহার করে : https://github.com/wofr06/lesspipe


1

আমি এই সহজ মার্জিত সমাধান পেয়েছি। বেশিরভাগ মেশিনে ডিফল্ট হিসাবে এটি ইতিমধ্যে রয়েছে বলে আপনাকে অতিরিক্ত কিছু ইনস্টল করতে হবে না। হিসাবে vimসবচেয়ে মেশিনে ডিফল্টরূপে ইনস্টল করা আছে, এটি চালানোর জন্য মধ্যে ম্যাক্রো উপস্থিত থাকলে vimমতless

এটি ব্যবহারের জন্য কয়েকটি বিকল্প হ'ল একটি উপকরণ তৈরি করুন: alias vless='vim -u /usr/share/vim/vim74/macros/less.vim'

বা একটি প্রতীকী লিঙ্ক তৈরি করুন: ln -s /usr/share/vim/vim74/macros/less.sh ~/bin/vless

তারপরে আপনি শুধু চালান vless myfile.py

আমি এখানে বেশিরভাগ তথ্য পেয়েছি


1
আমি alias lesser='/usr/share/vim/vim80/macros/less.sh'~/bash_aliases(উবুন্টু 18.04 এ)। শর্টকাট যেমন एफ ফরোয়ার্ড, বি পশ্চাৎপদ, ডি হাফ ডাউন, ইউ হাফ আপ, কিউ প্রস্থান, ইত্যাদি ব্যবহার করতে পারে ...
ড্যানিয়েল

0

আমার জন্য সবচেয়ে স্বজ্ঞাত এবং সোজা ফরোয়ার্ড সলিউশনটি ছিল pygmentize
.bashrc এ নীচের লাইনগুলি যুক্ত করে ব্যবহার করা

export LESS='-R'
export LESSOPEN='|pygmentize -g %s'

আপনি যদি কল করতে না pygmentizeপারেন, ঠিক তেমন ইনস্টল করুন

pip install pygments

গীত। pygmentizeএক্সিকিউটেবল বাইনারি বসতে হবে /usr/local/bin/অথবা আপনার মধ্যে /home/username/.virtualenv/venvname/bin/অথবা কোথাও।


-2

এগুলির কোনওটিই আমার জন্য বাক্সের বাইরে কাজ করছিল না এবং আমি এই কাজটি করার একটি সহজ উপায় বের করেছিলাম তাই ভেবেছিলাম আমি ভাগ করে নেব।

কেবল tmux ব্যবহার করুন, এটি আপনাকে বৃহত্তর ইতিহাসে অ্যাক্সেস করতে এবং স্ক্রোল করতে দেয় এবং রঙগুলি পুরোপুরি সংরক্ষণ করে।


1
Tmux এক পর্দা থেকে একাধিক টার্মিনালকে অনুমতি দেয় না, কীভাবে এটি কম রঙের প্রদর্শন পরিবর্তন করে?
Xen2050

@ Xen2050 আমি মনে করি এটি একটি ঝরঝরে কাজ যদিও এই উত্তরটি স্ক্রোল মোডে কীভাবে প্রবেশ করতে হবে তা ব্যাখ্যা করে না (Ctrl-b + [)
সিকামিকিকা

-2

যতক্ষণ আউটপুট পাঠ্যের রঙ নিয়ন্ত্রণের অক্ষর থাকে, ততক্ষণ less -Rকরবে।


এটিই অন্য উত্তর (9 বছর আগে) বলে says অন্যান্য উত্তরগুলির সদৃশ উত্তরগুলি কার্যকর হয় না।
কামিল ম্যাকিয়েরোভস্কি

ভাল, কিন্তু এই উত্তরটি এটি পরিষ্কার করে দেয় না যে এটি কেবল রঙ নিয়ন্ত্রণ অক্ষরের সাথে নির্মিত ফাইলগুলিতে কাজ করে।
লিওনার্দো রাইলে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.