smenu เป็นตัวกรองการเลือกเช่นเดียวกับ sed
เป็นตัวกรองการแก้ไข
เครื่องมือนี้อ่านคำจากอินพุตมาตรฐานหรือจากไฟล์ และนำเสนอคำเหล่านั้นไปยังหน้าจอเทอร์มินัลในรูปแบบต่างๆ ในหน้าต่างเลื่อน เคอร์เซอร์ที่เคลื่อนย้ายได้ง่ายโดยใช้ แป้นพิมพ์ และ/หรือ เมาส์ ทำให้สามารถเลือกคำได้ตั้งแต่หนึ่งคำขึ้นไป
โปรดทราบว่าหน้าจอจะไม่ถูกล้างเมื่อเริ่มต้นและสิ้นสุดการดำเนินการ เมนู หน้าต่างการเลือกจะแสดงที่ตำแหน่งเคอร์เซอร์ และเนื้อหาก่อนหน้าของเทอร์มินัลจะไม่ได้รับการแก้ไขหรือสูญหาย
ฉันพยายามทำให้มันใช้งานง่ายที่สุดเท่าที่จะเป็นไปได้ ควรใช้ได้กับเทอร์มินัลทั้งหมดที่จัดการในฐานข้อมูล terminfo
รองรับการเข้ารหัส UTF-8
การสนับสนุนนี้รวมถึงอักขระแบบ double-width และคลัสเตอร์กราฟแบบขยาย อย่างไรก็ตาม อย่างหลังยังคงอยู่ในช่วงทดลอง และทำงานได้ดีขึ้นมากหากใช้เทอร์มินัลที่เหมาะสม เช่น WezTerm หรือ iTerm
การเข้ารหัสสัญลักษณ์ UTF-8
จะต้องอยู่ในรูปแบบมาตรฐานด้วย เนื่องจากจะไม่มีความพยายามใดๆ ที่จะใส่สัญลักษณ์เหล่านั้นในรูปแบบนี้
โปรดดูที่หน้า man page ที่รวมไว้เพื่อหาข้อมูลเพิ่มเติมเกี่ยวกับโปรแกรมเล็กๆ นี้
วิกิประกอบด้วยภาพหน้าจอและภาพเคลื่อนไหวที่ให้รายละเอียดแนวคิดและคุณลักษณะบางประการของ เมนู
ลีนุกซ์บางรุ่นมี smenu เป็นแพ็คเกจอยู่แล้ว หากไม่มี smenu ก็สามารถสร้างได้บนระบบใดๆ ที่มีแพลตฟอร์มการพัฒนา terminfo
ที่ใช้งานได้ ซึ่งรวมถึงระบบที่คล้าย Unix และ Unix ทั้งหมดที่ฉันรู้จัก
โปรดใช้สคริปต์ build.sh
ที่ให้มาเพื่อสร้างไฟล์ปฏิบัติการ สคริปต์นี้ใช้และยอมรับอาร์กิวเมนต์เดียวกันกับสคริปต์ configure
GNU พิมพ์ build.sh --help
เพื่อดู
เมื่อกระบวนการสร้างเสร็จสมบูรณ์แล้ว make install
ง่ายๆ พร้อมสิทธิ์ที่เหมาะสมก็จะดำเนินการได้
ฉันได้เปิดใช้งานการสนทนาในพื้นที่เก็บข้อมูลนี้แล้ว
ฉันทราบดีว่าอาจมีความสับสนเมื่อตัดสินใจว่าคุณควรสื่อสารที่ใดเมื่อรายงานปัญหา ถามคำถาม หรือแจ้งคำขอคุณลักษณะ ดังนั้นส่วนนี้จึงมีจุดมุ่งหมายเพื่อช่วยให้เราสอดคล้องในเรื่องนั้น
โปรดแจ้งปัญหาหาก:
กรุณาเปิดการสนทนาหาก:
โปรแกรมนี้ควรใช้งานได้บน Unix ส่วนใหญ่ แต่ถ้าคุณใช้ Linux ให้ลองพิมพ์บรรทัดต่อไปนี้ที่พรอมต์เชลล์ (ที่นี่: "$ "
):
$ R=$(grep Vm /proc/$$/สถานะ - smenu -n20 -W $':tn' -q -c -b -g -s /VmH) $ เอคโค $ อาร์
ตอนนี้ควรแสดงสิ่งนี้พร้อมกับโปรแกรมที่รอคำสั่ง: (ตัวเลขเป็นของฉัน ของคุณจะแตกต่างออกไป)
VmPeak¦ 23840 kB VmSize¦ 23836 kB VmLck ¦ 0 กิโลไบต์ VmHWM ¦ 2936 กิโลไบต์ VmRSS ¦ 2936 กิโลไบต์ VmData¦ 1316 กิโลไบต์ VmStk ¦ 136 กิโลไบต์ VmExe ¦ 28 กิโลไบต์ VmLib ¦ 3956 กิโลไบต์ VmPTE ¦ 64 กิโลไบต์ VmSwap¦ 0 กิโลไบต์
เคอร์เซอร์ควรอยู่ภายใต้ "VmHWM "
หลังจากย้ายเคอร์เซอร์ไปที่ " 136 kB"
และสิ้นสุดโปรแกรมด้วย
ตัวแปรเชลล์ R ควรมี: " 136 kB"
คำสั่งต่อไปนี้ ซึ่งไม่เชื่อเรื่องแบรนด์ Unix ควรให้หน้าต่างเลื่อนแก่คุณ หากคุณมีบัญชีมากกว่า 10 บัญชีบน Unix ของคุณโดยมี UID ต่ำกว่า 100:
$ R=$(awk -F: '$3 < 100 {พิมพ์ $1,$3,$4,$NF}' /etc/passwd - เมนู -n10 -c) $ เอคโค $ อาร์
ของฉัน ( LANG
และ LC_ALL
ตั้งค่าเป็น POSIX
) จะแสดง:
ที่ 25 25 /bin/bash sys 0 3 /usr/bin/ksh + ถังขยะ 1 1 /bin/bash | ภูต 2 2 /bin/bash | ftp 40 49 /bin/bash | เกม 12 100 /bin/bash | lp 4 7 /bin/bash | เมล 8 12 /bin/false | ชื่อ 44 44 /bin/false | ntp 74 108 /bin/false v
สังเกตการมีอยู่ของแถบเลื่อน
เพียงเพิ่มสิ่งต่อไปนี้ใน .bashrc
ของคุณ
EOL=$'n' ผูก -x '"Cr": READLINE_LINE=$(fc -lr 1 - sed "s/[1-9][0-9]*..//" - smenu -Q -l -ac:7/4,b -W"$EOL") READLINE_POINT=${#READLINE_LINE}'
เปิดหรือเปิด ทุบตี อีกครั้งแล้วกด CTRL-R
( CTRL-C
หรือ q
เพื่อออก) สนุกได้เลย!
คุณยังสามารถเพิ่มพารามิเตอร์ -d เพื่อสั่งให้ smenu ทำความสะอาดหน้าต่างการเลือกหลังจากเลือกรายการแล้ว
เวอร์ชันเหล่านี้ใช้ระบบตัวเลือกใหม่ที่เรียกว่า ctxopt ซึ่งอาจมีข้อบกพร่อง โปรดรายงานพวกเขาเพื่อให้สามารถแก้ไขได้ใน smenu หรือ ctxopt รุ่นถัดไป (https://github.com/p-gen/ctxopt)
อาร์กิวเมนต์บรรทัดคำสั่งอาจจำเป็นต้องจัดเรียงใหม่ในบางกรณี เนื่องจากระบบการจัดการตัวเลือกใหม่นี้ ขออภัยสำหรับงานพิเศษนี้อาจนำมาซึ่ง
การจัดแนวบรรทัดที่เขียนด้วยภาษาจากขวาไปซ้าย เช่น ฟาร์ซีหรือฮีบรู ไม่ได้รับการปฏิบัติตาม
ระบบการทดสอบที่รวมมานั้นค่อนข้างใหม่ โปรดใช้ใจ
สิ่งสำคัญ ระบบการทดสอบมีการขึ้นต่อกัน โปรดอ่าน test/README.rst
ก่อนที่จะดำเนินการต่อ
หมายเหตุ การรันการทดสอบทั้งหมดโดยการรัน ./tests.sh
ในไดเร็กทอรี tests
จะใช้เวลาสักครู่ (ประมาณ 21 นาทีในตอนนี้)
หมายเหตุ ในบางระบบ เช่น *BSD การทดสอบบางอย่างอาจล้มเหลว สิ่งนี้สามารถอธิบายได้ด้วยความแตกต่างในการใช้งาน posix/libc/... สิ่งนี้สามารถเกิดขึ้นได้อย่างชัดเจนเมื่อมีการใช้นิพจน์ทั่วไปเฉพาะบางรายการหรือลำดับไบต์ UTF-8
ที่ไม่ปกติ
หากการทดสอบล้มเหลวโดยไม่ทราบสาเหตุ โปรดส่งชื่อไดเรกทอรีและไฟล์ .bad
ที่เกี่ยวข้องมาให้ฉัน
หากคุณพบจุดบกพร่องที่ไม่มีการทดสอบครอบคลุม คุณสามารถสร้างการทดสอบใหม่ในไดเร็กทอรี tests
ในไดเร็กทอรีที่มีอยู่หรือไดเร็กทอรีใหม่: อ่านไฟล์ tests/README.rst
ใช้การทดสอบที่มีอยู่เป็นโมเดล สร้าง .in
และไฟล์ .tst
แล้วส่งมาให้ฉันรวมถึงไฟล์ที่ผลิตด้วย
ยินดีให้การสนับสนุน แต่ให้หารือเกี่ยวกับข้อเสนอของคุณในประเด็นก่อนหรือกับผู้ดูแล
ฉันอยากจะขอบคุณผู้ที่สละเวลาจัดทำแพ็คเกจ smenu สำหรับระบบปฏิบัติการหรือการแจกจ่ายที่พวกเขาต้องการ คุณจะพบชื่อของพวกเขาได้ที่นี่: https://repology.org/project/smenu/information