Development version
This document describes in-flight development work.
Warning
Please do not edit this file by hand (doing so will likely cause merge conflicts for other Pull Requests). Instead, create a new file in the docs/source/whatsnew/pr folder
Released .... ...., 2019
Need to be updated:
Autosuggestion is a very useful feature available in fish, zsh, and prompt-toolkit.
Ptpython allows users to enable this feature in ptpython/config.py.
This feature allows users to accept autosuggestions with ctrl e, ctrl f, or right arrow as described below.
- Start ipython
- Run print("hello")
- Press p to see the autosuggestion
- Press ctrl f, or ctrl e, or right arrow to accept the suggestion
You can also complete word by word:
- Run def say_hello(): print("hello")
- Press d to see the autosuggestion
- Press alt f to accept the first word of the suggestion
Importantly, this feature does not interfere with tab completion:
- After running def say_hello(): print("hello"), press d
- Press Tab to start tab completion
3A. Press Tab again to select the first option
3B. Press alt f to accept to accept the first word of the suggestion
3C. Press ctrl f or ctrl e to accept the entire suggestion
To install a version of ipython with autosuggestions enabled, run:
pip install git+https://github.com/mskar/ipython@auto_suggest
Currently, autosuggestions are only shown in the emacs or vi insert editing modes:
- The ctrl e, ctrl f, and alt f shortcuts work by default in emacs mode.
- To use these shortcuts in vi insert mode, you will have to create custom keybindings in your config.py.
Autoreload 3 feature
Example: When an IPython session is ran with the 'autoreload' extension loaded, you will now have the option '3' to select which means the following:
- replicate all functionality from option 2
- autoload all new funcs/classes/enums/globals from the module when they're added
- autoload all newly imported funcs/classes/enums/globals from external modules
Try %autoreload 3 in an IPython session after running %load_ext autoreload
- For more information please see unit test -
- extensions/tests/test_autoreload.py : 'test_autoload_newly_added_objects'
As a reminder, IPython master has diverged from the 7.x branch, thus master may have more feature and API changes.