โดยค่าเริ่มต้น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ด้วยอีมูเลเตอร์ที่เหมาะสม