如何在我的bash提示符中正确使用双字符宽的emoji? [英] How can I properly use two-character-width emoji in my bash prompt?
本文介绍了如何在我的bash提示符中正确使用双字符宽的emoji?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在我的bash提示符(即PS1环境变量)中使用美国国旗表情符号。然而,美国国旗表情符号会导致终端光标向右偏移一个额外的字符。
🇺🇸由两个unicode字符组成:🇺和🇸。我相信终端正在将其转换为单间距表情字符(旗帜),但仍为两个字符分配空间。如何实现预期的光标位置?
我想:
🇺🇸 Desktop akirna 🗽 ls|
我收到:
🇺🇸 Desktop akirna 🗽 ls |
<;<;光标前奇怪的空格偏移量
我的~/.bash_profile
是:
export PS1='🇺🇸 W u 🗽 '
推荐答案
已更新答案
设置提示符的方式不是计算转义字符。在字符串前添加$以使其计算转义代码:
pompt$ export PS1='XY x08: '
XY x08: echo "Well that didn't work..."
应变为:
pompt$ export PS1=$'XY x08: '
XY: echo "Escape code success!"
(有关我删除export
的原因,请参阅Charles Duffy对此答案的评论。)
在我的系统上,该标志被呈现为两个字符(🇺和🇸),因此我无法验证这一点,但我认为添加一个退格符(X08)应该对您有效:
PS1=$'🇺🇸 \W \u 🗽x08'
有关编辑的说明
我最初的回答建议使用子外壳,如下所示:
export PS1=$(printf "XY x08")
非常感谢Charles Duffy的投入~
这篇关于如何在我的bash提示符中正确使用双字符宽的emoji?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文