`අඩු` හෝ` වැඩි` සහිත ගොනුවක් කියවන විට, අන්තර්ගතය වර්ණවලින් ලබා ගන්නේ කෙසේද?


436

මම විධානය සමඟ ලිනක්ස් හි ගොනුවක් කියවන විට lessහෝ more, වර්ණවලින් අන්තර්ගතය ලබා ගන්නේ කෙසේද?


5
මෙය සම්බන්ධ බව පෙනේ: superuser.com/questions/36022/less-and-grep-color - එය උදව් වේද?
ජොනික්

7
මෙම ප්‍රශ්නයේ මාතෘකාව ඉතා නොමඟ යවන සුළුය. මෙම පිටුවට ගොඩබසින බොහෝ අය වර්ණ ප්‍රතිදානය සහිත විධානයක් නල කිරීමේදී ඔබට ලැබෙන වර්ණ ගැන්වීමේ ගැටලුවට විසඳුමක් අපේක්ෂා කරති less: වර්ණ නැති වී යයි. (එම "ගිනි අඟුරුවල ප්රශ්නය" සම්බන්ධ පිළිතුරු less -R, unbufferආදිය) නමුත් සැබෑ ප්රශ්නය යොමු ගොනුව විවෘත ! - අපැහැදිලි භාවය මූලික වශයෙන් ප්‍රශ්නයේ මාතෘකාව තුළ පවතී, නමුත් ඊට අමතරව, IMHO ප්‍රශ්නය තවමත් පුළුල් ය: ”ගොනුවක් කියවන්න“ ඕනෑම ගොනුවකට යොමු විය හැකිය (බොහෝ විට සරල පෙළ). (හොඳයි, “අන්තර්ගතයෙන් වර්ණ ලබා ගන්න” යන්න බොහෝ විට සින්ටැක්ස් ඉස්මතු
කිරීමකට

මම පිළිතුරු 14, මා නිවැරදි කිරීමට 3 ක් පමණක් (හෝ 4) අවශ්ය විශ්රාම වැටුප් ගේ සැබෑ ප්රශ්නය අස්ථානගතවී ඇත: විසින් පිළිතුරු ChristopheD , Puneet හා Onlyjob ; සමහර විට jbbr . එහෙත්, එම පිළිතුරු වලින් දෙකක් වැඩිම ඡන්දය දුන් පිළිතුරු තුනෙන් කොටසකි.
myrdd

@myrdd “සින්ටැක්ස් ඉස්මතු කිරීම” යනු අදාළ යෙදුමයි ... (එය වර්ණ පෙන්වීම ගැන විමසයි, වර්ණ එකතු නොකරන්නේද?) less -Rලිපිගොනු වලද ක්‍රියා කරයි, උදාls --color=always > /tmp/file && less -R /tmp/file
ගර්ට් වැන් ඩෙන් බර්ග්

1
@myrdd ප්‍රශ්නය "අසන දේ අපැහැදිලි" ලෙස වසා දැමීම වඩාත් අර්ථවත් වනු ඇත, මන්ද මේ දෙකෙන් ඕනෑම අයෙකු අසන ප්‍රශ්න මෙහි අනුපිටපත් ලෙස සලකුණු වනු ඇත ... (තවද මේ දෙකෙන් ඕනෑම කෙනෙකුට පිළිතුරු පහත් කොට දැක්විය හැකිය. ඡන්දදායකයා එය අර්ථ නිරූපණය කරන ආකාරය මත පදනම්ව ...) (මගේ භාවිත නඩුව (කරදරකාරී ලෙස) එහි වර්ණ ගැලවීමේ කේත ඇති ලොග් ගොනුවක් විය)
ගර්ට් වැන් ඩෙන් බර්ග්

Answers:


161

(2020 යාවත්කාලීන කරන්න)

වේගවත්ම ක්‍රමය වනුයේ less -Rref භාවිතා කිරීමයි. https://superuser.com/a/117842/34893


ඔබට අඩු වශයෙන් ස්වයංක්‍රීයව පිග්මන්ටයිස් කිරීමේ බලය භාවිතා කළ හැකිය! (අතින් පයිප්ප කිරීම අවශ්‍ය නොවේ.)

pygmentsඔබේ ඇසුරුම් කළමණාකරු හෝ නළය සමඟ ස්ථාපනය කරන්න (සමහර විට එය හැඳින්විය හැක python-pygments) හෝ එය මෙතැනින් ලබා ගන්න http://pygment.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යුතුය. ඔබට pygmentize ( pygments.org/download ) ස්ථාපනය කර තිබිය යුතුය.
සර්ජි බෙලෝසොරොව්

7
ukpuk ඔබට එවැනි දෙයක් කළ හැකිය ls --color=always -l | less -R. නිසැකවම ටයිප් කිරීමට බොහෝ දේ ඇති නමුත් ඔබට එය වෙනත් දෙයකට අන්වර්ථ කළ හැකිය ll. එනම් ඔබට අමතර පුස්තකාල භාවිතා කිරීමට අවශ්‍ය නැතිනම්.
ෆිල්ට්

2
@ සර්ජි බයෙලෝසියෝරොව්ගේ පිළිතුර පිළිතුරට එක් කළේය.
andrybak

2
මගේ සංස්කරණය ප්‍රතික්ෂේප කරන ලදි, ඒ වෙනුවට මම එය විවරණයක් ලෙස පළ කරමි: විධාන පිටවීමේ කේත වක්‍රව පරීක්ෂා නොකරන්න. ඔබට භාවිතා කළ හැකිය if grep -q "#\!/bin/bash" "$1"( -qසම්මත ප්‍රතිදානය යටපත් කරයි). ඔබට සම්මත දෝෂයක් හරවා යැවීමට අවශ්‍ය විය හැකිය 2>/dev/null.
ටොම් ෆෙනෙක්

1
ඔබ දැනට ස්ථාපනය කර ඇති පිග්මන්ටයිස් අනුවාදයෙන් සහය දක්වන සියලුම අද්විතීය ගොනු දිගු ලැයිස්තුවක් ලබා ගැනීම සඳහා, මෙම .lessfilter ස්ක්‍රිප්ටයට ඇලවීම සඳහා සුදුසු ආකෘතියකින් ධාවනය කරන්න pygmentize -L | grep -o "(filenames .*)" | sed -E "s,\(filenames (.*)\),\1,gm;s/, /\n/g" | sort -u | tr "\n" "|". සමහර ලිනක්ස් වල, සැකසීම LESSOPENඅවශ්‍ය නොවිය හැකි බැවින් එය භාවිතා කිරීමට දැනටමත් සකසා lesspipeඇති නිසා .lessfilter ගොනුව දැනටමත් හඳුනාගෙන ඇත ( echo $LESSOPENපරීක්ෂා කිරීමට ධාවනය කරන්න).
බාර්ට්

522

පහත සඳහන් දෑ උත්සාහ කරන්න:

less -R

සිට man less:

-r හෝ --raw-control-chars

"අමු" පාලක අක්ෂර පෙන්වීමට හේතු වේ. (...)

-R හෝ --RAW-CONTROL-CHARS

මෙන් -r, නමුත් "අමු" ස්වරූපයෙන් ප්‍රතිදානය වන්නේ ANSI "වර්ණ" ගැලවීමේ අනුක්‍රමය පමණි. (...)


17
ගොනුවේම පෙන්විය යුතු ගැලවීමේ කේත අඩංගු වන විට මෙය ප්‍රයෝජනවත් වේ.
නයිට්‍රොඩිස්ට්

55
බොහෝ වැඩසටහන් isatty(2)ඒවායේ සම්මත ප්‍රතිදානය පර්යන්තයක් දැයි පරීක්ෂා කිරීමට syscall භාවිතා කරන බව සැලකිල්ලට ගත යුතුය . ඕනෑම පයිප්පයක් අඩු නම්, isatty0 නැවත පැමිණේ. මෙය ක්‍රියාත්මක වේදැයි පරීක්ෂා කිරීමට උත්සාහ කරන්නecho -e '\x1b[32;1mtest\x1b[m' | less -r
mic_e

11
ඇත්ත වශයෙන්ම යමක් පරීක්‍ෂා කිරීමේදී මෙම පිළිතුර විශිෂ්ට නොවේ.
මයිකල් වුල්ෆ්

18
මෙය සාක්ෂාත් කර ගැනීම සඳහා -Rඔබ දැනටමත් විවෘත lessකළ විට ඔබට ටයිප් කළ හැකිය .
Scz

3
IMHO මෙය සැබවින්ම පිළිගත් පිළිතුර විය යුතුය, එය වඩාත් සරල ය
විලියන් මිට්සුඩා

141

මට තවත් පෝස්ට් එකකින් පිළිතුර ලැබුණි: අඩුවෙන් සහ ග්‍රෙප්: ග්‍රෙප් සිට අඩු දක්වා පයිප්පයක් භාවිතා කරන විට වර්ණ ප්‍රති results ල ලබා ගැනීම

ඔබ සරලව ධාවනය කරන grep --colorවිට එයින් ගම්‍ය වන්නේ grep --color=autoප්‍රතිදානය පර්යන්තයක්ද යන්න සහ එමඟින් වර්ණ සක්‍රීය කරන්නේද යන්න හඳුනා ගැනීමයි. කෙසේ වෙතත්, එය පයිප්පයක් හඳුනාගත් විට එය වර්ණ ගැන්වීම අක්‍රීය කරයි. පහත විධානය:

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

සෑම විටම වර්ණ ගැන්වීම සක්‍රීය කර ස්වයංක්‍රීය අනාවරනය අභිබවා යන අතර ඔබට වර්ණ උද්දීපනය අඩු අගයකින් ලැබෙනු ඇත.

අවවාදයයි: --color=alwaysඅන්වර්ථයක් ලෙස නොතබන්න , එය සමහර විට දේවල් බිඳ දමයි. --color=autoවිකල්පයක් ඇත්තේ එබැවිනි .


6
හොඳයි, ස්තූතියි. ඒ හැරෙන්නට මට -Rවිකල්පයක් ලෙසද භාවිතා කළ යුතුය less.
naught101

10
grep -Rපුනරාවර්තන සෙවීම නියම කිරීම සඳහා යැයි මම විශ්වාස කරමි . වර්ණ නිවැරදිව කෙළ ගැසීමට less -Rඅවශ්‍ය වේ less. grep --color=always [grep cmds] | less -ROS X 10.7.3 හි මා වෙනුවෙන් වැඩ කරයි!
ස්ටීවන් ලූ

2
කෙසේ වෙතත් grep ට පයිප්ප අඩු -R විධානයක් ලබා දී වර්ණ ගැන්වීම පමණක් කළ හැකිද? ඉතින්, අපි --color = සෑම විටම හා අඩුවෙන් -R දැමිය යුතු නැත.
ඒ-ලෙටබ්බි

1
මෙය බොහෝ දුරට වැඩ කරන සරලම පිළිතුරයි. ස්තූතියි!
ඩැනී ස්ටැපල්

1
ඔබට පයිප්ප git diffකිරීමට අවශ්‍ය වූ විටද මෙය ක්‍රියාත්මක වේ less. මෙය කිරීමෙන්: git diff | lessඔබට කිසිදු වර්ණයක් නොපෙන්වයි. ඒ වෙනුවට ඔබ මෙය කළ යුතුය: git diff --colors=always | lessහෝ git diff --colors=always some_file | less. (මම වින්ඩෝස් 10 හි
සිග්වින්

36

viewවෙනුවට භාවිතා කරන්න less. එය vimකියවිය හැකි ආකාරයෙන් ගොනුව විවෘත කරයි .

එය ප්‍රායෝගිකව පාට ය less: ඔබට සෙවිය හැකි පේජරයක් /(සහ තවත්). එකම අඩුපාඩුව නම් ඔබට පිටවිය නොහැකි qනමුත් ඔබට අවශ්‍ය වීමයි:q

එසේම, ඔබට සමාන වර්ණ ගැන්වීමක් ලැබේ vim(ඔබ ඇත්ත වශයෙන්ම භාවිතා කරන බැවින් vim).


විශාල ලිපිගොනු වල ක්‍රියාකාරිත්වය ගැන කුමක් කිව හැකිද? Vim syntax උද්දීපනය කිරීම විශාල ලිපිගොනු වල මන්දගාමී බව දනී.
pihentagy

1
මම ඉහළට ඔසවා තැබුවෙමි (නමුත් මම නොදැන සිටියෙමි view) නමුත් තවත් අවාසියක් නම් කර්සරයක් ඇති බැවින් j / k / up / down ක්ෂණිකව අනුචලනය නොකිරීමයි.
ටයිලර් කොලියර්

7
view -පයිප්ප
දැමීමේදී

7
vimසංස්කාරකයක් වන අතර එය සම්පූර්ණ ගොනුව මතකයට lessපටවන අතර පේජරයක් වන අතර ගොනුව අර්ධ වශයෙන් මතකයට පමණක් පටවනු ලැබේ. විශාල ගොනු සමඟ වෙනස ඔබ දැන ගනු ඇත.
sjas

1
IcRiccardoGalli - සිසිල් අදහස, නමුත් කාර්ය සාධනය ගැන මම එකඟ වෙමි, එය ක්ෂණික නොවේ. විශාල ල logs ු-සටහන් හෝ ග්‍රෙප්ස් බලන විට, විශේෂයෙන් ඕවර්-ද-ලයින් (එස්එස්එච්) lessවේගවත් වන අතර එය සම්පූර්ණ නිමැවුම් රේඛාව “ඇතුළු කිරීම්” හරහා රේඛාවෙන් බැහැර නොකරයි vim. එසේම, ඔබට less'/' භාවිතා කර සෙවිය හැකිය . ඊට අමතරව එය "වලිග" මාදිලියක් ඇති අතර එය මාරුව-එෆ් භාවිතා කරයි.
ධූපින්

18

වර්ණ පෙන්වීමට අඩුවෙන් පැවසීමට එය -R සමඟ අමතන්න:

less -R

අවාසනාවකට සමහර වැඩසටහන් ඔවුන්ගේ stdout පර්යන්තයක් නොවන බවත් වර්ණ අක්‍රීය කරන බවත් හඳුනා ගනී - උදා: පැක්මන් (ආරුක්කු ලිනක්ස් පැකේජ කළමනාකරු).

එවැනි අවස්ථාවලදී එය භාවිතා කළ හැකිය unbuffer:

unbuffer <command> | less -R

පැක්මන් භාවිතා කරමින් උදාහරණය

unbuffer pacman -Ss firefox | less -R

මෙම unbufferවිධානය සාමාන්යයෙන් ඇසුරුමේ කොටසක් වනexpect (Arch ලිනක්ස්, ඩේබියන් / උබුන්ටු) හෝ expect-dev(ඩේබියන් / උබුන්ටු උරුමය සංස්කරණ).

සම්පූර්ණත්වය සඳහා ප්‍රශ්නයට පිළිතුරු දීමට:

අනෙක් අය දැනටමත් පිළිතුරු දී ඇති පරිදි, pygmentizeප්‍රභව කේත වර්ණ ගැන්වීම සඳහා විශිෂ්ටයි. එය අවශ්ය නොවේ unbuffer. පහසුම ඇමතුම:

pygmentize someSource.cpp | less -R

2
unbufferඋබුන්ටු හි භාවිතා කිරීමට,sudo apt install expect
wisbucky

මෙම පිළිතුරට වැඩි දියුණු කිරීම් අවශ්‍ය වේ.
තෝමස් ඩිග්නන්

ඇරඹුම් දෝෂ පරීක්ෂා කිරීම සඳහා මම ඩිමෙස්ග් ප්‍රතිදානය නල කිරීමට උත්සාහ කළ නමුත් මා විසින් බෆරය භාවිතා නොකරන්නේ නම් වර්ණ ක්‍රියා නොකරයි unbuffer dmesg | less -R.
pbhj

macOS මත brew install expectඔබට අවශ්‍ය unbufferවිධානය ලැබේ.
luckman212

15

pygmentize-gකියවිය යුතු ලිපිගොනු සඳහා ප්‍රයෝජනවත් වන ලෙක්සර් ස්වයංක්‍රීයව අනුමාන කිරීමේ විකල්පයට සහය දක්වයිSTDINකිසිදු දිගුවක් පරීක්ෂා නොකර .

එය භාවිතා කරමින්, ඔබට අවශ්‍ය වන්නේ පහත සඳහන් අපනයන 2 .bashrcඅතිරේක ස්ක්‍රිප්ට් නොමැතිව සැකසීම පමණි :

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

4
සංක්ෂිප්ත හා .ලදායී. අන්වර්ථයක් අර්ථ දැක්වීමට මම කැමතියි, මන්ද සමහර විට අඩු වීම වඩා හොඳය. ඉතින්: අන්වර්ථ lesc = 'LESS = "- R" LESSOPEN = "| pygmentize -g% s" less'
Tiago

10

මෙම වර්ණයෙන් අදහස් විය යුත්තේ කුමක්දැයි ඔබ කීවේ නැත, උදා: පෙළ ගොනුවක් සඳහා වර්ණ කුමක් විය යුතුද?

ඔබට අවශ්‍ය වන්නේ ප්‍රභව කේතය සඳහා සින්ටැක්ස් ඉස්මතු කිරීම නම්, ඔබට ප්‍රභව කේත හයිලයිටරයක් ​​අවශ්‍ය වේ. මම සමහර විට මේ ආකාරයට pygmentize භාවිතා කරමි

pygmentize file.cpp | less

හෝ

pygmentize file.cpp | more

අවට තවත් උද්දීපනයන් ඇත.

මෙය ඉතා වේගවත්. ඔබට වෙඩි තැබීමට කමක් vimනැත්නම් කියවීමට පමණක් ඇති මාදිලියක් තිබේ නම් එය ඔබට සින්ටැක්ස් උද්දීපනය කළ හැකිය vim.

view file.cpp

හෝ විකල්පයක් ලෙස චර්න්ඩ්ගේ පිළිතුර බලන්න.


7

මෙය තවත් වර්ණක පදනම් කරගත් පිළිතුරකි, ප්‍රධාන වැඩිදියුණු කිරීම් කිහිපයක් සමඟ:

  • බිඳ වැටෙන්නේ නැත lesspipeහෝlessfile පෙරහන්
  • වෙත බහු යෙදවුම් සමඟ ක්‍රියා කරයි less
  • ෂෙබාං ශීර්ෂයෙන් ස්ක්‍රිප්ට් වර්ගය නිවැරදිව විග්‍රහ කරයි
  • පිග්මන්ට්ස් විසින් සකස් කළ හැකි ගොනු වර්ග 434 සඳහාම ක්‍රියා කරයි
  • වර්ණ පටිපාටිය පරිසර විචල්‍යයක් ලෙස පරාමිතිකරණය කර ඇත

Pygment සහ Gawk ස්ථාපනය කරන්න

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

පරිසර විචල්‍යයන් සකසන්න

යන්න පරීක්ෂා කරන්න 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

හොඳයි! සැබවින්ම විස්තීර්ණ.
ඩාරියෝ සීඩ්ල්

TIL: ඉහත .lessfilter එක සමඟ "awk: line 1: syntax error at or near" වැනි දෝෂයක් ඔබට ලැබුනේ නම්, gawk ස්ථාපනය කර ඇත්දැයි පරීක්ෂා කරන්න.
බ්‍රයිස්

4

GNU ප්‍රභව-උද්දීපනය භාවිතා කරන්න ; ඔබට එය aptඇත්නම් එය ස්ථාපනය කළ හැකිය , නැතහොත් වෙනත් ආකාරයකින් එය ස්ථාපනය කළ හැකිය. ඉන්පසු අඩු මුදලකට "ආදාන පෙර සැකසුම් යන්ත්‍රයක්" සකසන්න, අඩු-සැකසුම් සඳහා මූලාශ්‍ර-හයිලයිගේ ලේඛනවල සහාය ඇතිව :

මෙය යෝජනා කළේ කොන්ස්ටන්ටයින් සෙරෙබ්‍රියානි විසිනි. Src-hilite-lesspipe.sh ස්ක්‍රිප්ට් ප්‍රභව-උද්දීපනය සමඟ ස්ථාපනය කෙරේ. ඔබට පහත පරිසර විචල්‍යයන් භාවිතා කළ හැකිය:

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

මේ ආකාරයෙන්, ඔබ ගොනුවක් පිරික්සීමට අඩුවෙන් භාවිතා කරන විට, එය ප්‍රභව-උද්දීපනය මඟින් හසුරුවන ප්‍රභව ගොනුවක් නම්, එය ස්වයංක්‍රීයව උද්දීපනය වේ.

සේවියර්-එමානුවෙල් වින්සන්ට් මෑතකදී ANSI වර්ණ පටිපාටියේ විකල්ප සංස්කරණයක් සපයන ලදි, esc256.style: සමහර පර්යන්ත වලට වර්ණ 256 ක් හැසිරවිය හැකිය. සේවියර් විසින් ඔබේ පර්යන්තයට හැසිරවිය හැකි වර්ණ කොපමණ දැයි පරික්ෂා කරන ස්ක්‍රිප්ට් එකක් ලබා දී ඇති අතර 256 ප්‍රභේදය භාවිතා කරයි. ස්ක්‍රිප්ට් එක source-highlight-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'

ඔබට තවමත් .lessfilter ක්‍රියාත්මක කළ හැකි ය:

$ chmod 700 ~/.lessfilter

ඩෙබියන් යටතේ පිග්මන්ට්ස් පැකේජය පයිතන්-පිග්මන්ට්ස් ලෙස හැඳින්වීමටද මට අවශ්‍ය විය. “වර්ණක” “පිග්මන්ට්ස්” ලෙස පැහැදිලිව අක්ෂර වින්‍යාසය කිරීම මට ඉඟියක් ප්‍රමාණවත් නොවූ හෙයින් එය පැකේජ කළමණාකරු විසින් “පයිතන්” සමඟ පෙර සැකසිය හැකි පැකේජයක් බව මට මුලින් ඉඟි කිරීමට නොහැකි විය.


2
අදහස් 2: 1) වැඩිදියුණු කිරීමට ස්තූතියි. 2) “ඡන්දය දුන් හොඳම පිළිතුර” වැනි වාක්‍ය විශිෂ්ට නොවේ; එය වෙනස් විය හැකිය (ඇත්ත වශයෙන්ම, මෙම පිළිතුරට වඩා හොඳ නම්, මෙම ලිපිය ඉහළම පිළිතුර බවට පත්විය හැකිය, එම අවස්ථාවේදී එය ව්‍යාකූල වනු ඇත. සමහර විට "වෙනත් පිළිතුරක් පුළුල් කිරීමට" හෝ "කැප්ටන්කොමික්ගේ පිළිතුර" යැයි කියනු ඇත්ද?
cpast

3

අඩු අත්දැකීම් වැඩිදියුණු කිරීම පිළිබඳ මගේ සම්පූර්ණ බ්ලොග් සටහනෙන් සංක්ෂිප්ත කර ඇත: 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


2

සහ mostසඳහා වර්ණ-හිතකාමී විකල්පයක් වන උපයෝගීතාව භාවිතා කිරීම ඔබට සලකා බැලිය හැකිය .lessmore


ඔබට අපට එක් උදාහරණයක් පෙන්විය හැකිද? මම මෙහි උත්සාහ කළ අතර ප්‍රතිදානය කළු සහ සුදු විය.
ඩැනිලෝ

ඔබේ ආදානයේ වර්ණ අඩංගු විය යුතුය. පළමුව වර්ණ ගැන්වූ නියැදියක් නිෂ්පාදනය කරන්න (උදා 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/… හැකි සෑම විටම ඩේබියන් වැනි නවීන GNU + ලිනක්ස් බෙදා හැරීම භාවිතා කරන්න . පිළිතුරු සෙවීම සඳහා සෙවුම් යන්ත්‍රය (උදා: duckduckgo.com startpage.com ) භාවිතා කරන්න . අදහස් දැක්වීම සාකච්ඡා සඳහා නොවන බව මතක තබා ගන්න.
ජොන්

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 දී). F forward, b backward, d half down, u half up, q quit, වැනි කෙටිමං භාවිතා කළ හැකිය ...
ඩැනියෙල්

0

මට වඩාත්ම අවබෝධාත්මක හා forward ජු ඉදිරි විසඳුම වූයේ pygmentize
.bashrc වෙත පහත පේළි එක් කිරීමයි

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

ඔබට ඇමතිය නොහැකි නම් pygmentize, ස්ථාපනය කරන්න

pip install pygments

ps. මෙම pygmentizeක්රියාවෙහි යෙදවිය ද්විමය වාඩි බව /usr/local/bin/හෝ ඔබේ /home/username/.virtualenv/venvname/bin/හෝ කොහේ හරි.


0

කොටුවෙන් පිටත වර්ණ සමඟ වැඩ කරන අඩු / වැඩි විකල්පයක් වන්නේ වවුලයි. බොහෝ ඇසුරුම් කළමණාකරුවන් එය පේජරයක් ලෙස මෙන්ම බළලුන් ආදේශ කිරීමක් ලෙස භාවිතා කිරීමෙන් ඔබට එය ස්ථාපනය කළ හැකිය.

https://github.com/sharkdp/bat


-2

මේ කිසිවක් මා වෙනුවෙන් කොටුවෙන් පිටත ක්‍රියාත්මක නොවූ අතර මෙම කාර්යය කිරීමට පහසු ක්‍රමයක් මම හදුනා ගත්තෙමි.

Tmux භාවිතා කරන්න, එමඟින් ඔබට විශාල ඉතිහාසයක් වෙත පිවිසීමට සහ අනුචලනය කිරීමට ඉඩ සලසයි.


1
එක් තිරයකින් බහු ටර්මිනල් වලට tmux අවසර නොදෙන්නේද, එය අඩු වර්ණ ප්‍රදර්ශනය වෙනස් කරන්නේ කෙසේද?
Xen2050

En Xen2050 මෙම පිළිතුර අනුචලන මාදිලියට ඇතුළු වන්නේ කෙසේදැයි පැහැදිලි නොකළද එය ඉතා හොඳ විසඳුමක් යැයි මම සිතමි (Ctrl-b + [)
siikamiika

-2

ප්‍රතිදාන පා text යට වර්ණ පාලන අක්ෂර ඇති තාක් කල් less -Rඑසේ කරනු ඇත.


මේ මොකක්ද තවත් පිළිතුර (9 කට පෙර සිට) පවසයි. වෙනත් පිළිතුරු අනුපිටපත් කරන පිළිතුරු ප්‍රයෝජනවත් නොවේ.
කමිල් මැකියෝරොව්ස්කි

සාධාරණයි, නමුත් එම පිළිතුර එය ක්‍රියාත්මක වන්නේ වර්ණ පාලක අක්ෂර වලින් සාදන ලද ගොනු මත පමණක් බව පැහැදිලි නොකරයි.
ලෙනාඩෝ රේල්
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.