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.
1. Start ipython
|image|
2. Run ``print("hello")``
|image1|
3. Press p to see the autosuggestion
|image2|
4. Press ctrl f, or ctrl e, or right arrow to accept the suggestion
|image3|
You can also complete word by word:
1. Run ``def say_hello(): print("hello")``
|image4|
2. Press d to see the autosuggestion
|image5|
3. Press alt f to accept to accept the first word of the suggestion
|image6|
Importantly, this feature does not interfere with tab completion:
1. After running ``def say_hello(): print("hello")``, press d
|image7|
2. Press Tab to start tab completion
|image8|
3A. Press Tab again to select the first option
|image9|
3B. Press alt f to accept to accept the first word of the suggestion
|image10|
3C. Press ctrl f or ctrl e to accept the entire suggestion
|image11|
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 `__.
.. |image| image:: https://user-images.githubusercontent.com/13444106/94700432-76580100-0309-11eb-8798-040d47d1a540.png
.. |image1| image:: https://user-images.githubusercontent.com/13444106/94700528-91c30c00-0309-11eb-920d-4ef8aa79d79a.png
.. |image2| image:: https://user-images.githubusercontent.com/13444106/94700681-bf0fba00-0309-11eb-94bd-bbddf4805da2.png
.. |image3| image:: https://user-images.githubusercontent.com/13444106/94700883-fd0cde00-0309-11eb-9aa8-17270951f021.png
.. |image4| image:: https://user-images.githubusercontent.com/13444106/94704474-f54f3880-030d-11eb-9d73-fa10ced850be.png
.. |image5| image:: https://user-images.githubusercontent.com/13444106/94704519-fe400a00-030d-11eb-8b73-3c35ffaf1a9d.png
.. |image6| image:: https://user-images.githubusercontent.com/13444106/94704602-14e66100-030e-11eb-90fc-d930463f52de.png
.. |image7| image:: https://user-images.githubusercontent.com/13444106/94704519-fe400a00-030d-11eb-8b73-3c35ffaf1a9d.png
.. |image8| image:: https://user-images.githubusercontent.com/13444106/94704969-80303300-030e-11eb-8379-6bff94582849.png
.. |image9| image:: https://user-images.githubusercontent.com/13444106/94705023-90481280-030e-11eb-9cf7-76170d1004b9.png
.. |image10| image:: https://user-images.githubusercontent.com/13444106/94704602-14e66100-030e-11eb-90fc-d930463f52de.png
.. |image11| image:: https://user-images.githubusercontent.com/13444106/94705115-ab1a8700-030e-11eb-9dee-da98fccca0a6.png