วิธีการรับหน้าคนสีภายใต้เปลือกหอย?


12

ดูเหมือนว่าจะมีวิธีในการทำให้ man page แสดงเป็นสี (ดูที่นี่มันเกี่ยวข้องกับการตั้งค่าตัวแปรสภาพแวดล้อมที่เกี่ยวข้องกับการน้อยลงและเพิ่มคำจำกัดความเหล่านี้ไปที่.bashrcฉันพยายามทำแบบเดียวกันconfig.fishกับ fish shell แต่ไม่มีเอาต์พุตสี

วิธีการรับหน้าคนสีในเปลือกปลา?



มีความเป็นไปได้ที่ซ้ำกันของวิธีเพิ่มการส่งออกไปยังปลาเช่นใน. bashrc
Panther

@ bodhi.zazen Fish ใช้คำสั่ง set แทนการส่งออก ที่ไม่ได้ทำให้หน้าคนปรากฏเป็นสี ดังนั้นคำถามของฉันด้านบน :-)
Ashwin Nanjappa

คุณต้อง "ตั้งค่า" ตัวแปรเหล่านั้น (จาก arch wiki) ให้น้อยลงหรือ (อีกครั้งจาก arch wiki) ส่วนใหญ่
Panther

@ bodhi.zazen ใช่ ฉันทำอย่างนั้นแล้ว ไม่มีสีในหน้าคน :-(
Ashwin Nanjappa

คำตอบ:


6

คุณสามารถตั้งค่าการกำหนดค่าโดยใช้คำสั่งต่อไปนี้

set -x LESS_TERMCAP_mb (printf "\033[01;31m")  
set -x LESS_TERMCAP_md (printf "\033[01;31m")  
set -x LESS_TERMCAP_me (printf "\033[0m")  
set -x LESS_TERMCAP_se (printf "\033[0m")  
set -x LESS_TERMCAP_so (printf "\033[01;44;33m")  
set -x LESS_TERMCAP_ue (printf "\033[0m")  
set -x LESS_TERMCAP_us (printf "\033[01;32m")  

7

ถ้าคุณต้องการสีเหล่านี้จะเพิ่มเฉพาะเมื่อดูหน้าคนไม่ได้สำหรับทุกอย่างที่คุณดูในlessคุณควรตั้งค่าตัวแปรเหล่านี้ในฟังก์ชั่นเสื้อคลุมสำหรับแทนการวางไว้ในคุณmanconfig.fish

กระบวนการทั้งหมดคือการสร้างไฟล์ใหม่ที่~/.config/fish/functions/man.fishและภายในกำหนดฟังก์ชั่นmanที่กำหนดตัวแปรสภาพแวดล้อมที่จำเป็นแล้วเรียกเดิมmanใช้ผ่านในการขัดแย้งโดยใช้command$argv

นี่คือฟังก์ชั่น wrapper รุ่นของฉัน:

~/.config/fish/functions/man.fish
function man --description "wrap the 'man' manual page opener to use color in formatting"
  # based on this group of settings and explanation for them:
  # http://boredzo.org/blog/archives/2016-08-15/colorized-man-pages-understood-and-customized
  # converted to Fish shell syntax thanks to this page:
  # http://askubuntu.com/questions/522599/how-to-get-color-man-pages-under-fish-shell/650192

  # start of bold:
  set -x LESS_TERMCAP_md (set_color --bold red)
  # end of all formatting:
  set -x LESS_TERMCAP_me (set_color normal)

  # start of standout (inverted colors):
  #set -x LESS_TERMCAP_so (set_color --reverse)
  # end of standout (inverted colors):
  #set -x LESS_TERMCAP_se (set_color normal)
  # (no change – I like the default)

  # start of underline:
  #set -x LESS_TERMCAP_us (set_color --underline)
  # end of underline:
  #set -x LESS_TERMCAP_ue (set_color normal)
  # (no change – I like the default)

  command man $argv
end

2
ขอบคุณมาก! และเพื่อให้ได้คาวมากยิ่งขึ้นคุณสามารถใช้set_colorคำสั่ง เช่นset -x LESS_TERMCAP_md (set_color -o red),set -x LESS_TERMCAP_me (set_color normal)
คริสคลาร์ก

3

สมมติว่าคุณใช้เพจเจอร์ของคุณน้อยลงให้ใส่สิ่งนี้ใน~/.config/fish/config.fish:

set -x LESS_TERMCAP_mb (printf "\e[01;31m")
set -x LESS_TERMCAP_md (printf "\e[01;31m")
set -x LESS_TERMCAP_me (printf "\e[0m")
set -x LESS_TERMCAP_se (printf "\e[0m")
set -x LESS_TERMCAP_so (printf "\e[01;44;33m")
set -x LESS_TERMCAP_ue (printf "\e[0m")
set -x LESS_TERMCAP_us (printf "\e[01;32m")

หากคุณเห็น\e[0mฯลฯ ปรากฏขึ้นเมื่อคุณดูหน้าคนลองเพิ่มบรรทัดนี้ด้วย:

set -x LESS "-R"

ไม่ทำงาน. ฉันเห็น \ e [01 สตริงเมื่อฉัน "man ls"
Ashwin Nanjappa

แปลกฉันเชื่อว่านี่ตรงจากไฟล์ปรับแต่งของฉัน ฉันไม่ได้ลองจริง ๆ บน Ubuntu แต่ในขณะที่ฉันใช้ distro ตัวอื่น บางทีคุณอาจลองเพิ่มset -x LESS="-R"ในตอนท้ายของการกำหนดค่าของคุณ?
bobbaluba

การเพิ่มที่ไม่ได้ช่วย ยังคงเห็น \ e [01 สตริงใน manpage เหมือนเดิม
Ashwin Nanjappa

1

เป็นไปได้ที่จะใช้set_colorแทนลำดับ ANSI โดยตรง ในความเป็นจริงนี้จะช่วยให้คุณใช้สีใด ๆ ที่คุณต้องการโดยใช้ 24 (set_color FF55AA)บิตหนีเลขฐานสิบหกสีเช่น

set -x LESS_TERMCAP_mb (set_color brred)
set -x LESS_TERMCAP_md (set_color brred)
set -x LESS_TERMCAP_me (set_color normal)
set -x LESS_TERMCAP_se (set_color normal)
set -x LESS_TERMCAP_so (set_color -b blue bryellow)
set -x LESS_TERMCAP_ue (set_color normal)
set -x LESS_TERMCAP_us (set_color brgreen)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.