[IPython-user] prompt problems
Fernando Perez
Fernando.Perez at colorado.edu
Thu Mar 17 15:53:11 CST 2005
Bengt Frost wrote:
> Hi,
>
> I (still) have problem as follows:
>
> Python 2.3.4 (#1, Feb 7 2005, 20:36:44)
> Type "copyright", "credits" or "license" for more information.
>
> IPython 0.6.12 -- An enhanced Interactive Python.
> ? -> Introduction to IPython's features.
> %magic -> Information about IPython's 'magic' % functions.
> help -> Python's own help system.
> object? -> Details about 'object'. ?object also works, ?? prints more.
> bfrost[~] In[1] >>> for x in range(10):
> <ERROR: PromptOut instance has no attribute 'col_p2'>
>
>
> My ~/.ipython/ipythonrc(with extra space):Python 2.3.4 (#1, Feb 7 2005,
> 20:36:44)
>
> # Added:
> prompt_in1 '\C_LightRed\u\C_LightBlue[\C_LightBlue\Y1\C_LightBlue]
> In[\C_LightGreen\#\C_LightBlue] \C_LightBlue>>> '
> # \D is replaced by as many dots as there are digits in the
> # current value of \#.
> prompt_in2 ' .\D.: '
>
> prompt_out 'Out[\#]: '
>
> Any ideas? Thanks!
Mmh, do you mean within emacs? I'm not sure if the ipython.el is
sophisticated enough to recognize these more customized prompts. Here's the
relevant section of ipython.el:
(defvar ipython-de-input-prompt-regexp "\\(?:
In \\[[0-9]+\\]: .*
----+> \\(.*
\\)[\n]?\\)\\|\\(?:
In \\[[0-9]+\\]: \\(.*
\\)\\)\\|^[ ]\\{3\\}[.]\\{3,\\}: \\(.*
\\)"
"A regular expression to match the IPython input prompt and the python
command after it. The first match group is for a command that is rewritten,
the second for a 'normal' command, and the third for a multiline command.")
The problem is that ipython prompts can be arbitrarily dynamic (as I recently
showed in the -dev list). You can pretty much evaluate anything you want in
there, including runtime-dependent code. So it's probably impossible for
emacs to catch all cases.
Can you test with the simpler prompts I sent? If those work for you, it may
be the case that, _for emacs use_, you need to restrict yourself to slightly
less fancy prompts. You can always set your emacs config to load ipython with
a special profile, where you define an emacs-friendly prompt, even if at a
terminal you want to use more complex ones. Here's how I have mine set:
(setq py-python-command-args '("-pylab" "-p" "pylab" "-colors" "LightBG"))
Or perhaps our resident emacs gurus can come up with a better solution, which
I'd gladly include in the docs (or modify the distributed ipython.el if
necessary).
best,
f
More information about the IPython-user
mailing list