如何在 IPython 中自定义文本颜色?

新手上路,请多包涵

我想在 IPython 中自定义文本的颜色,但我不知道该怎么做。

我知道在 Python 中,我可以通过使用 ANSI 颜色代码结束 sys.ps1sys.ps2 来做到这一点

sys.ps1=">>> \001\033[0m\033[34m\002"

但是使用 PromptManager.in_template 的相应方法不适用于 IPython。例如

c = get_config()
c.PromptManager.in_template = 'In [{count}] : {color.Blue}'

对提示后文本的颜色没有影响。

有没有办法改变 IPython 中文本的颜色?

原文由 orome 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 666
2 个回答

提示 明确地将 输入颜色设置为 colors.in_normal 。如果要更改输入颜色,则必须更改此颜色。

不幸的是,自定义配色方案仍在待办事项列表中(应该很容易,只是不是高优先级)。

一个你似乎想要的有点骇人听闻的例子,改变配置文件中输入和/或输出文本的颜色:

 from IPython.utils import coloransi
from IPython.core import prompts

termcolors = coloransi.TermColors() # the color table
# IPython's two color schemes:
dark = prompts.PColLinux.colors
light = prompts.PColLightBG.colors

# colors.in_normal affects input code
dark.in_normal = termcolors.Green
light.in_normal = termcolors.Blue
# colors.normal affects output
dark.normal = light.normal = termcolors.Red

这会将其设置为使文本颜色与提示相匹配,但您当然可以选择任何您想要的颜色。

原文由 minrk 发布,翻译遵循 CC BY-SA 3.0 许可协议

IPython 中的着色和语法样式

首先,您必须在您的主目录中创建一个 ipython 配置文件 ~/.iphyton/ipython_config.pyipython_config.py 。最简单的方法是运行以下命令:

 ipython profile create

如果您使用的是 ipython3 开始

ipython3 profile create

这将在您的 ~/.ipython 中安装一个 profile_default 目录和一些脚本;否则在您的机器上找到此文件并将其复制到您的 ~/.ipython/profile_default/ 目录中。

使用以下命令备份此文件:

 cp ~/.ipython/profile_default/ipython_config.py{,_backup}

使用您选择的文本编辑器打开 ~/.ipython/profile_default/ipython_config.py 并搜索以下 settig 并根据需要将其注释掉(删除“#”):

  • c.InteractiveShell.color_info = True

  • c.InteractiveShell.colors = 'Linux'

  • c.TerminalInteractiveShell.highlighting_style = 'monokai'

  • c.TerminalInteractiveShell.highlight_matching_brackets = True

等等。有许多有用的设置默认情况下是禁用的;您只需将它们注释掉(删除 `#’ )。

样式文件

在 Ubuntu/Debian 上你必须安装 pygments

sudo apt install python3-pygments

或者

sudo pip3 install pygments

样式文件可以在以下目录中找到:

/path/to/your/python/ site-packages/pygments/styles/ ,例如 /usr/lib/python3/dist-packages/pygments/styles/monokai.py

或者,您也可以使用 pygmentize 列出已安装的样式:

 pygmentize -L styles

原文由 abu_bua 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题