回答
終端讓你,你寫文本彩色文本。如果你想改變一些文本的顏色,你必須知道已經有什麼—和重寫它(當然括號爲tput rev
和tput sgr0
命令)。
重寫提示意味着您必須知道寫入提示的屏幕上的位置。對於簡單的大小寫(您的提示不在屏幕底部,導致它在輸入命令時向上滾動),可以保存當前光標位置(使用tput sc
),並將其還原以返回提示重寫它(使用tput rc
)。
但是,這隻會對簡單的大小寫有幫助,因爲多行(或滾動)命令會使其無法返回提示並重寫該提示。
人們使用curses —編寫類似的應用程序,但zsh的terminfo支持不會對屏幕上顯示的內容進行控制。
任何方式來獲取「已有的東西」? (包括它的當前屬性/顏色);對於多行,我可能會以某種方式向後搜索,直到遇到提示符之前的某個符號 - 在我的例子中它是非常獨特的。有關如何進行搜索的任何提示? – user569825
有沒有便攜的方式來做到這一點... –
也許你可以通過操縱調色板來獲得近似值。在xterm-256color
中,您可以動態更改256種顏色中的每一種,並使用控制序列爲其分配任意RGB值。例如,要將調色板轉換爲256級中性步驟楔,請使用此功能(並使用reset_colors
將其撤消)。當你在屏幕上進行顏色測試(彩色立方體)時,這是最好的。
# Operating System Control.
OSC=$(printf '\033]')
BEL=$(printf '\a')
reset_colors() {
printf "${OSC}104${BEL}"
}
gray_colors() {
c=0
while test $c -lt 256; do
printf "${OSC}4;$c;rgb:%02x/%02x/%02x${BEL}" $c $c $c
: $((++c))
done
}
現在如果你的電流指令應爲紅色,變成灰色執行一次,分配等10種顏色相同的紅色的色相,並且一旦顯示下一個提示,將其更改爲灰色,並使用下一個紅色時隙爲新的提示。然後循環顯示10種紅色(假設這是關於屏幕上任何時候的命令數量)。根據自己的喜好調整。
- 1. 如何更新已經在Java中輸出的值?
- 2. RSpec。如何爲管道輸出或重定向輸出着色?
- 3. Java:Windows中的着色輸出
- 4. 如何在Python中爲文本着色?
- 5. 着色ifort輸出
- 6. 着色PyLint輸出?
- 7. 在java中着色文本
- 8. 在C#中着色文本#
- 9. 如何爲NAnt輸出着色?
- 10. 如何着色git-status輸出?
- 11. 如何強制emacs重新着色
- 12. 如何動態重新着色CGGradientRef
- 13. 在eclipse中着色slf4j/log4j輸出
- 14. Django在runserver.py中着色輸出
- 15. 使用不同的顏色在輸入文本中着色文本
- 16. 着色文本中的WinForms
- 17. 着色文本
- 18. 如何總結這已經已經重新排列矩陣
- 19. 你如何在輸出流中使用幾何着色器?
- 20. 在Web中重新着色圖像
- 21. 在VB中遞歸重新着色
- 22. 重新創建輸出文本文件
- 23. 從Cucumber輸出「管道」輸出時的文字着色
- 24. 如何在rails 3控制檯中着色記錄器輸出
- 25. 褪色和重新出現在Javascript中的文本集合
- 26. 重新着色按鈕
- 27. 如何啓用zsh 5.0突出顯示和着色的命令行?
- 28. 如何在vb.net中爲richtextbox中的多個文本着色
- 29. 用於shell腳本的ZSH語法格式化和着色
- 30. 秒錶已經過輸出
你使用什麼終端('TERM'變量)? – Jens
這是** xterm-256color ** – user569825