โดยค่าเริ่มต้นman
ใช้less
ในการส่งข้อความ ฉันจะบอกให้มันส่งออกไปยัง stdout ได้อย่างไร เทอร์มินัลอีมูเลเตอร์ของฉันมีแถบเลื่อนและฟังก์ชั่นการค้นหาและฉันต้องการใช้สิ่งเหล่านั้นแทนปุ่มลูกศร
โดยค่าเริ่มต้นman
ใช้less
ในการส่งข้อความ ฉันจะบอกให้มันส่งออกไปยัง stdout ได้อย่างไร เทอร์มินัลอีมูเลเตอร์ของฉันมีแถบเลื่อนและฟังก์ชั่นการค้นหาและฉันต้องการใช้สิ่งเหล่านั้นแทนปุ่มลูกศร
คำตอบ:
จริงๆแล้วมันใช้สิ่งที่ระบุไว้ในMANPAGER
หรือPAGER
ตัวแปรสภาพแวดล้อม
ขึ้นอยู่กับman
การนำไปใช้และเวอร์ชันของคุณอาจมีสวิตช์บรรทัดคำสั่งเพื่อระบุเพจเจอร์
ด้วยการใช้man-dbฉันใช้วิธีด้านล่างทั้งหมดทำงาน:
MANPAGER=cat man man
PAGER=cat man man
MANOPT='-P cat' man man
man -P cat man
หากต้องการตั้งค่าอย่างถาวรเพียงเพิ่มลงใน~/.bashrc
(หรือไฟล์เริ่มต้นอื่นที่เชลล์ใช้):
export MANPAGER=cat
ที่ทำงานกับman
การใช้งานเก่าบางส่วนเช่นกันในขณะที่MANOPT
เป็น man-db เฉพาะ:
export MANOPT='-P cat'
(อย่าตั้งค่าPAGER
วิธีนี้ดีกว่าแอปพลิเคชั่นอื่น ๆ ก็ถูกใช้เช่นกัน)
อาจมีไฟล์กำหนดค่าส่วนกลาง มนุษย์มีฐานข้อมูลหรือ/etc/man_db.conf
/etc/manpath.config
ที่นั่นคุณสามารถตั้งค่า:
DEFINE pager cat
แต่น่าเสียดายที่มีการดำเนินการในการพิจารณาเฉพาะในกรณีที่ค่าMANPAGER
มิได้PAGER
เป็นชุด
MANPAGER
คุณมีสิทธิใน ฉันใช้คำว่า "น่าเสียดาย" สำหรับความจริงที่ว่าพฤติกรรมนี้ใช้กับPAGER
ซึ่งเป็นการตั้งค่าทั่วไป (ใช้โดยเครื่องมือจำนวนมาก) และฉันต้องการที่จะไม่แทนที่การตั้งค่าเฉพาะ (ใช้โดยเครื่องมือเดียวเท่านั้น) แม้ว่าจะเป็นเช่นนั้น หนึ่งคือระดับระบบ
PAGER=cat man
ตัวอย่างเช่น:alias man='PAGER=cat MANPAGER=cat man'
เพียงส่งออกท่อของman
ถึงcat
?
man ls | cat # useful use of cat
man
ใช้งานว่า 1) ข้อผิดพลาดเพิ่มขึ้น 2) แสดงรหัสรูปแบบ troff ในเทอร์มินัล 3) ลบการจัดรูปแบบทั้งหมด 4) ทำงานตามที่คาดไว้
man
ดูเหมือนว่าจะใช้เพจเจอร์ที่ตั้งไว้MANPAGER
แม้ในขณะที่เอาท์พุทเป็นไฟล์หรือไพพ์ และถ้าวิทยุติดตามตัวเป็นless
สิ่งที่ดีเพราะless
พฤติกรรมเช่นcat
เมื่อเอาท์พุทเป็นท่อ ... แต่ถ้าคุณใช้อย่างอื่น (เช่น Vim ซึ่งฉันใช้) แล้วก็ไม่ดี
ลองใช้คำสั่งเหล่านี้เพื่อสร้างเอาต์พุต man โดยไม่มีเพจเจอร์
man ls | cat
(สร้างความกว้างคงที่)
man -P cat ls
(สร้างความกว้างของตัวแปร)
ฉันอยู่ในระบบ GNU linux
อีกมุมหนึ่ง: คล้ายกับคำตอบของโทนี่
นอกจากนี้คุณยังสามารถเปลี่ยนเส้นทางคนส่งออกเป็นไฟล์และดูด้วยโปรแกรมแก้ไขข้อความที่คุณชื่นชอบหรือเพิ่มที่คั่นหน้าความคิดเห็นและอื่น ๆ
man bash > bashman.txt
ฉันมีสำเนาของหน้าคนทุบตีเช่นเดียวกับส่วนในการควบคุมการไหลของทุบตีและธงทดสอบทุบตีบันทึกเป็นไฟล์ข้อความในไดเรกทอรีถังขยะของฉันดังนั้นฉันสามารถโหลดพวกเขาลงในโปรแกรมแก้ไขข้อความของฉัน (เคท) สำหรับการอ้างอิงในขณะที่ฉัน การเขียนสคริปต์ทุบตี
คำเตือน: ขึ้นอยู่กับระบบของคุณและหน้า man, คำสั่งด้านบนอาจส่งผลให้ข้อมูลการจัดรูปแบบและตัวควบคุมในไฟล์
เพื่อหลีกเลี่ยงปัญหานี้ให้ทำตามที่แนะนำในLESS='+/^TIPS' man man
:
To get a plain text version of a man page, without backspaces and
underscores, try
# man foo | col -b > foo.mantxt
~/.bashrc
คุณสามารถรวมการส่งออกในเงื่อนไขเพื่อกำหนดเพจเจอร์เฉพาะถ้ามันเป็นเทอร์มินัล / อีมูเลเตอร์ที่เหมาะสม:if [ "x$TERM" = "xxterm" ]; then export MANPAGER=cat; fi
; เห็นได้ชัดว่าแทนที่xterm
ด้วยอีมูเลเตอร์ที่เหมาะสม