Feature request: enable editing_mode = ‘vi’ for a ZMQTerminalIPythonApp console
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 38/100
Research direction
Reproduce the difference between a vanilla IPython console and a jupyter console connected to an existing kernel, then trace ZMQTerminalIPythonApp and ZMQInteractiveShell. Compare how the vanilla shell exposes editing_mode and determine what is needed for the connected console to support both emacs and vi modes.
Written by the indexing model from the issue text.
Description
When starting a vanilla kernel (e.g. invoking ‘ipython’) it is possible to change the editing mode between ‘emacs’ or ‘vi’. There are other ways of doing it but a simple one is to:
ipython
Python 3.10.12 | packaged by conda-forge | (main, Jun 23 2023, 22:40:32) [GCC 12.3.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.16.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: ip = get_ipython()
In [2]: ip.editing_mode
Out[2]: 'emacs'
In [3]: ip.editing_mode = 'vi'
[ins] In [4]:
But when connecting to a jupyter-lab-made kernel this is not possible:
# after starting a kernel in jupyer lab and getting its info using %connect_info
jupyter console --existing kernel-00463bd1-4faf-4491-a903-a7179a6d4ceb.json
[ZMQTerminalIPythonApp] WARNING | Config option `kernel_spec_manager_class` not recognized by `ZMQTerminalIPythonApp`. Did you mean `kernel_manager_class`?
Jupyter console 6.6.3
Python 3.10.12 | packaged by conda-forge | (main, Jun 23 2023, 22:40:32) [GCC 12.3.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.16.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: ip = get_ipython()
In [6]: ip.editing_mode
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
Cell In[6], line 1
----> 1 ip.editing_mode
AttributeError: 'ZMQInteractiveShell' object has no attribute 'editing_mode'
In [7]:
- Dominant language
- Python
- Stars
- 734
- Forks
- 411
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 9
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ipython/ipykernel
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 1/5 Under an hour Newbie friendliness 72/100
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
-
Difficulty 4/5 3-5 days Newbie friendliness 68/100
-
ipython/ipykernel#1550 · 1 comment · 1 reaction · 1 assignee ·
All issues in ipython/ipykernel
Similar issues
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
canonical/paas-charm#368 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
tech debt
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
StevenBlack/hosts#3256 ·
-
Difficulty 1/5 Under an hour Newbie friendliness 90/100
qualcomm/qai-appbuilder#275 ·