สัญลักษณ์และตัวอักษรที่ยอดเยี่ยมในรูปแบบการทุบตี


81

ฉันวิ่งข้ามภาพหน้าจอของเทอร์มินัลของใครบางคน:

สกรีนช็อตของเซสชันที่แสดงพร้อมต์ด้วยเครื่องหมายดอกจันและลูกศร

มีรายการของตัวละครทั้งหมดที่สามารถใช้ได้ใน Bash prompt หรือใครบางคนสามารถรับตัวละครสำหรับดาวและลูกศรขวาได้ไหม?

คำตอบ:


104

คุณสามารถใช้ตัวอักษรที่พิมพ์ได้ทุบตีไม่เป็นไร คุณอาจต้องการกำหนดค่าเทอร์มินัลของคุณเพื่อรองรับUnicode (ในรูปแบบของUTF-8 )

มีอักขระจำนวนมากใน Unicode ดังนั้นต่อไปนี้เป็นเคล็ดลับที่จะช่วยคุณค้นหาแผนภูมิ Unicode:

  • คุณสามารถพยายามที่จะดึงตัวอักษรบนShapecatcher พยายามจดจำอักขระ Unicode ในสิ่งที่คุณวาด
  • คุณสามารถลองคิดดูว่าตัวละครตัวไหนอยู่ในบล็อกนั้นตัวอย่างเช่นสัญลักษณ์ที่ดูแปลกและดาวนั้นจะอยู่ในกลุ่มของสัญลักษณ์เบ็ดเตล็ด ตัวละครที่ชอบǪและıเป็นตัวอักษรละตินที่มีตัวดัดแปลง; เป็นสัญลักษณ์ทางคณิตศาสตร์และอื่น ๆ
  • คุณสามารถลองคิดถึงคำในคำอธิบายของตัวละครและค้นหามันในรายการชื่อสัญลักษณ์และคำอธิบายของ Unicode GucharmapหรือKcharselectสามารถช่วยได้

PS บน Shapecatcher ผมได้U + 2234 เพราะฉะนั้นสำหรับ, U + 2192 ชี้ไปทางขวาลูกศรสำหรับ, U + 263F MERCURYสำหรับและU + 2605 Black Starสำหรับ

ในสคริปต์ทุบตีจนถึงทุบตี 4.1 คุณสามารถเขียนไบต์ตามจุดโค้ด แต่ไม่ใช่ตัวอักษร หากคุณต้องการหลีกเลี่ยงอักขระที่ไม่ใช่ ASCII เพื่อให้.bashrcการเปลี่ยนแปลงการเข้ารหัสไฟล์มีความยืดหยุ่นคุณจะต้องป้อนไบต์ที่สอดคล้องกับอักขระเหล่านี้ในการเข้ารหัส UTF-8 คุณสามารถดูค่าเลขฐานสิบหกได้โดยการรันecho ∴ → ☿ ★ | hexdump -Cในเทอร์มินัล UTF-8 เช่นถูกเข้ารหัสโดย\xe2\x88\xb4ใน UTF-8

if [[ $LC_CTYPE =~ '\.[Uu][Tt][Ff]-?8' ]]; then
  PS1=$'\\[\e[31m\\]\xe2\x88\xb4\\[\e[0m\\]\n\xe2\x86\x92 \xe2\x98\xbf \\~ \\[\e[31m\\]\xe2\x98\x85 $? \\[\e[0m\\]'
fi

เนื่องจาก bash 4.2 คุณสามารถใช้\uตามด้วยเลขฐานสิบหก 4 หลักใน$'…'สตริง

  PS1=$'\\[\e[31m\\]\u2234\\[\e[0m\\]\n\u2192 \u263f \\~ \\[\e[31m\\]\u2605 $? \\[\e[0m\\]'

อืมมม เมื่อฉันวิ่งecho ★ | hexdump -C1ฉันจะได้รับ: hexdump: invalid option -- '1'. มันจะยังคงทำงานโดยไม่มีหมายเลข 1 ในการร้องขอหรือไม่
Naftuli Kay

2
@TKKocheran นั่น1คือการพิมพ์ผิดมันเป็นเพียงแค่hexdump -C(หรือhdสั้น ๆ ในบางระบบ)
Gilles

นอกจากนี้คุณยังสามารถทำ: PS1=$'\u2234\u2192\u263f\u2605'รู้สึกง่ายต่อการรักษา :-)
เสื่อ

1
Shapecatcher ยอดเยี่ยมมาก! ขอบคุณสำหรับการชี้ให้เห็น
Siamore

1
@FaithReaper \uNNNNไวยากรณ์เป็นคุณลักษณะของการ$'…'อ้างอิงไม่ใช่การขยายพร้อมท์ ค่าของPS1ต้องมีอักขระ Unicode $'\u1234'เป็นวิธีการใส่อักขระ Unicode ลงในสตริง
Gilles

12

คุณสามารถค้นหาสัญลักษณ์ยูนิโค้ดในเว็บไซต์จำนวนมากเช่นนี้: http://panmental.de/symbols/info.htm

คุณเพียงแค่ต้องให้แน่ใจว่าคุณระยะรองรับ UTF-8


ฉันจะหนีจากหนึ่งในตัวละครเหล่านี้ได้อย่างไร Ie\u27A4
Naftuli Kay

2
ดูคำตอบ @Gilles หรือสิ่งนี้: stackoverflow.com/questions/602912/…
jasonwryan

คุณสามารถดูคะแนน unicode ทั้งหมด 65000+ ที่utf8-chartable.de (ในบริบทของค่ารหัสจุด "utf8" มีความหมายเหมือนกันกับ "unicode")
goldilocks

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.