簡體   English   中英

Bash 提示沒有正確換行

[英]Bash prompt does not wrap text properly

我最近在我的 bash 提示中添加了一些顏色,現在當我鍵入命令時,文本無法正確換行。

這是一個例子:

MacBook-Pro:~ williamgiles$
long commandwilliamgiles$ this is a really long command,this is a really 

我的原始 PS1:

\h:\W \u\$

我的新顏色:

\e[0;35m\h:\W \u$ \e[m

您需要將變色序列標記為不會影響屏幕提示長度的內容。

PS1='\[\e[0;35m\]\h:\W \u$ \[\e[m\]'

bash已經知道將\h\W\u的擴展考慮在內; 它不知道\e[0;35m不僅僅是終端將在屏幕上顯示的 7 個字符。

添加到@chepner 的回答中,我個人在我的.inputrc中使用\1\2
這是一個例子:

set vi-ins-mode-string \1\e[38;5;015m\2╰─\1\e[0m\2\1\e[38;2;191;254;33m\2(ins)⫸\1\e[0m\2\1\e[5 q\2\1\e]12;rgb:bf/fe/21\e\\\2
set vi-cmd-mode-string \1\e[38;5;015m\2╰─\1\e[0m\2\1\e[38;2;191;121;33m\2(cmd)⫸\1\e[0m\2\1\e[2 q\2\1\e]12;rgb:bf/79/21\e\\\2

\1表示零長度部分的開始, \2表示結束。 \001\002也可以)
不久前我寫了 一篇關於這個話題的博文。 你可能會覺得很有趣。

我的 shell 最終看起來像什么(頂部部分可以通過使用Oh-My-Posh 實現

我的外殼

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM