如the manual中所述,ipython非常智能,可以自动从粘贴的代码行中删除默认提示 - 非常方便。我根据自己的喜好定制了我的提示,遗憾的是这似乎打破了这个逻辑。是否可以在我的启动文件中调整模式匹配逻辑以反映自定义提示,如果是,如何?
答案 0 :(得分:0)
如果你正在使用最新的IPython(1.0或开发版本),那么是的,虽然它不是我们特别支持的东西(即API将来可能会改变)。定义一个与你的提示相匹配的正则表达式 - 就像经典的Python提示一样:re.compile(r'^(>>> ?|\.\.\. ?)')
。
然后你需要一些这样的代码(未经测试):
from IPython.core.inputtransformer import CoroutineInputTransformer, _strip_prompts
@CoroutineInputTransformer.wrap
def my_prompt():
prompt_re = re.compile(r'foo')
return _strip_prompts(prompt_re)
ip = get_ipython()
ip.input_splitter.physical_line_transforms.insert(0, my_prompt())
ip.input_transformer_manager.physical_line_transforms.insert(0, my_prompt())
您可以将它放在启动文件(IPYTHONDIR/profile_default/startup/prompts.py
)中,以便在启动IPython时自动运行。