Я щойно наткнувся на скріншот чийогось терміналу:
Чи є список усіх персонажів, які можна використовувати в підказці Bash, чи хтось може отримати мені персонажа для зірки та стрілки праворуч?
Я щойно наткнувся на скріншот чийогось терміналу:
Чи є список усіх персонажів, які можна використовувати в підказці Bash, чи хтось може отримати мені персонажа для зірки та стрілки праворуч?
Відповіді:
Ви можете використовувати будь-який символ для друку, bash не проти. Ви, ймовірно, захочете налаштувати свій термінал для підтримки Unicode (у формі UTF-8 ).
У Unicode символів дуже багато, тому ось кілька порад, які допоможуть вам шукати за допомогою діаграм Unicode:
Ǫ
і ı
є латинськими літерами з модифікаторами; ∉
є математичним символом тощо.PS На Shapecatcher я отримав U + 2234 ТЕХНІЧ для ∴
, U + 2192 СТРЕЛКА ПРАВИЛЬНИХ для →
, U + 263F МЕРКУР для ☿
та U + 2605 ЧОРНИЙ ЗІР для ★
.
У скрипті bash, до bash 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
чотири шістнадцяткових цифр у $'…'
рядку.
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
must містить символ Unicode. $'\u1234'
це спосіб ввести символ Unicode в рядок.
Ви можете знайти символи Unicode на багатьох сайтах, як цей: http://panmental.de/symbols/info.htm
Ви просто повинні переконатися, що ваш термін підтримує UTF-8 .
\u27A4
Мені подобається користуватися цими інструментами - вони мають приємний досвід, і їх легко знайти:
echo ★ | hexdump -C1
, я отримую:hexdump: invalid option -- '1'
. Чи все одно він буде працювати без 1 у виклику?