更改当前使用的文本的颜色(终端 - OSX)

Change Color of Text Being Currently Used (Terminal - OSX)

供参考:我使用的是 Macbook Pro Retina (2014),并且在我发布此问题时所有软件都是最新的. (使用 OSX 10.10.2 Yosemite


过去几天我一直在努力尝试自定义终端 window。一切都很顺利......直到我决定我只想更改您当前正在输入的文本文本输入)的颜色然后将被执行。

进入 .bash_profile 并进行任何调整都没有问题。我似乎无法很好地掌握颜色概念,以至于它只为我做这件事。目前我的 .bash_profile 看起来像这样:

export PS1="\n\n\njboned$ "
export PATH="/usr/local/mysql/bin:$PATH"

export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad

如有任何帮助,我们将不胜感激。 作为旁注:我了解用于表示各种颜色的 8 位片段,但似乎我无法弄清楚如何使用它们来仅处理文本输入。

要完成您要求的操作,需要执行以下步骤:

  • 在提示结束时,打开您想要显示的文本颜色
  • 当您按下 return(完成编辑)时,关闭文本颜色。

bash 不会在您编辑时重置属性,因此颜色 "should" 在编辑时起作用。在您编辑时,bash 可能会使用清除当前行的转义序列(可能会用您选择的任何背景颜色填充它)。

真正的问题是当您按下 Enter 时如何重置颜色。这似乎没有直接的解决方案:我没有看到重新绑定 Enter 键以添加功能的方法——解释级别之间没有区别,您可能找不到它可以增强 Enter 键。 bash 中的键绑定功能主要与 readline 库对话;剩菜被送到 bash。在绑定中,您可以执行以下操作:

  • 将宏的 name 发送到 bash,或者发送一个完整的 echo 重置颜色的命令(因为 readline 没有 echo似乎是独立的)
  • Enter 键(即 ^M)和
  • 直接读取行,accept-line函数

或者,您可以做的是绑定另一个键,比如control/L执行bash accept-line功能以及重置颜色。这里有几个链接,您会发现它们对研究如何执行此操作很有用: