回答
終端讓你,你寫文本彩色文本。如果你想改變一些文本的顏色,你必須知道已經有什麼—和重寫它(當然括號爲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. RSpec。如何爲管道輸出或重定向輸出着色?
- 2. Java:Windows中的着色輸出
- 3. 如何在Python中爲文本着色?
- 4. 着色PyLint輸出?
- 5. 着色ifort輸出
- 6. 在java中着色文本
- 7. 在C#中着色文本#
- 8. 如何爲NAnt輸出着色?
- 9. 如何強制emacs重新着色
- 10. 如何動態重新着色CGGradientRef
- 11. Django在runserver.py中着色輸出
- 12. 着色文本中的WinForms
- 13. 如何總結這已經已經重新排列矩陣
- 14. 在VB中遞歸重新着色
- 15. 如何在rails 3控制檯中着色記錄器輸出
- 16. 重新着色按鈕
- 17. 如何啓用zsh 5.0突出顯示和着色的命令行?
- 18. 用於shell腳本的ZSH語法格式化和着色
- 19. 秒錶已經過輸出
- 20. HLSL幾何着色器空輸出
- 21. 如何在重定向文件中的輸出文本時在DOS命令行中顯示輸出文本?
- 22. 設置一個值已經在文本輸入/文本區
- 23. 在窗口着色控制檯輸出
- 24. 如何避免重新處理已經在我的Perl腳本中處理過的輸入?
- 25. 如何在NSComboBox的Popup菜單中對文本進行着色?
- 26. 如何在C++中爲指定的文本着色
- 27. 如何重新命名輸入文本
- 28. 在RichtextBox,C中着色文本#
- 29. 在richTextBox中着色部分文本
- 30. 使用jQuery在textarea中着色文本
你使用什麼終端('TERM'變量)? – Jens
這是** xterm-256color ** – user569825