ฉันวิ่งข้ามภาพหน้าจอของเทอร์มินัลของใครบางคน:
มีรายการของตัวละครทั้งหมดที่สามารถใช้ได้ใน Bash prompt หรือใครบางคนสามารถรับตัวละครสำหรับดาวและลูกศรขวาได้ไหม?
ฉันวิ่งข้ามภาพหน้าจอของเทอร์มินัลของใครบางคน:
มีรายการของตัวละครทั้งหมดที่สามารถใช้ได้ใน Bash prompt หรือใครบางคนสามารถรับตัวละครสำหรับดาวและลูกศรขวาได้ไหม?
คำตอบ:
คุณสามารถใช้ตัวอักษรที่พิมพ์ได้ทุบตีไม่เป็นไร คุณอาจต้องการกำหนดค่าเทอร์มินัลของคุณเพื่อรองรับUnicode (ในรูปแบบของUTF-8 )
มีอักขระจำนวนมากใน Unicode ดังนั้นต่อไปนี้เป็นเคล็ดลับที่จะช่วยคุณค้นหาแผนภูมิ Unicode:
Ǫ
และı
เป็นตัวอักษรละตินที่มีตัวดัดแปลง; ∉
เป็นสัญลักษณ์ทางคณิตศาสตร์และอื่น ๆ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\\]'
1
คือการพิมพ์ผิดมันเป็นเพียงแค่hexdump -C
(หรือhd
สั้น ๆ ในบางระบบ)
PS1=$'\u2234\u2192\u263f\u2605'
รู้สึกง่ายต่อการรักษา :-)
\uNNNN
ไวยากรณ์เป็นคุณลักษณะของการ$'…'
อ้างอิงไม่ใช่การขยายพร้อมท์ ค่าของPS1
ต้องมีอักขระ Unicode $'\u1234'
เป็นวิธีการใส่อักขระ Unicode ลงในสตริง
คุณสามารถค้นหาสัญลักษณ์ยูนิโค้ดในเว็บไซต์จำนวนมากเช่นนี้: http://panmental.de/symbols/info.htm
คุณเพียงแค่ต้องให้แน่ใจว่าคุณระยะรองรับ UTF-8
\u27A4
ฉันชอบใช้เครื่องมือเหล่านี้ - พวกเขามีประสบการณ์ที่ดีและง่ายต่อการค้นหาผ่าน:
echo ★ | hexdump -C1
ฉันจะได้รับ:hexdump: invalid option -- '1'
. มันจะยังคงทำงานโดยไม่มีหมายเลข 1 ในการร้องขอหรือไม่