Re: Using Prompt Toolkit to edit terminal inputs in a screen editor.
Carl Smith <[email protected]> Tue, 19 Jul 2016 17:28:52 +0100
| Newsgroups | gmane.comp.python.ipython.devel |
|---|---|
| Message-ID | <CAP-uhDcO087Ff_jRSLeAchvUHTfwUwPr2sbYo0yh7tsaODBHnA@mail.gmail.com> |
-- Carl Smith [email protected] On 19 July 2016 at 12:10, Thomas Kluyver <[email protected]> wrote: > Ooh, nice find. If we can agree on a keyboard shortcut that people like > for this, I'd like to enable it by default in IPython. > > On 18 July 2016 at 22:15, Carl Smith <[email protected]> wrote: > >> Prompt Toolkit allows you to open the current input in your favourite >> editor, edit the code, and when you exit, you have the edited code in the >> input buffer. This is different to %edit, and is really useful in practice. >> >> If you chuck this code in a startup file, it will create a keybinding for >> the feature. This code uses Ctrl-N (because ne is currently my favourite >> tool for these kinds of edits), but you can easily change the keybinding. >> >> from prompt_toolkit.keys import Keys >> >> ip = get_ipython() >> >> def open_input_in_editor(event): >> >> event.cli.current_buffer.tempfile_suffix = ".py" >> event.cli.current_buffer.open_in_editor(event.cli) >> >> bind_key = ip.pt_cli.application.key_bindings_registry.add_binding >> bind_key(Keys.ControlN)(open_input_in_editor) >> >> It'd be nice to have a better way of setting the tempfile suffix, so it >> isn't redundantly reassigned every time you use the function, but doing it >> this way is fine for now. Removing that causes the tempfile to have no >> suffix, so you wouldn't get language specific features like syntax >> highlighting. >> >> Hope someone else finds this useful. >> >> Best, >> -- Carl Smith >> [email protected] >> >> _______________________________________________ >> IPython-dev mailing list >> [email protected] >> https://mail.scipy.org/mailman/listinfo/ipython-dev >> >> > > _______________________________________________ > IPython-dev mailing list > [email protected] > https://mail.scipy.org/mailman/listinfo/ipython-dev > > _______________________________________________ IPython-dev mailing list [email protected] https://mail.scipy.org/mailman/listinfo/ipython-dev