##// END OF EJS Templates
Docs on adding keyboard shortcuts to terminal IPython...
Thomas Kluyver -
Show More
@@ -159,3 +159,37 b' With (X)EMacs >= 24, You can enable IPython in python-mode with:'
159 .. _`(X)Emacs`: http://www.gnu.org/software/emacs/
159 .. _`(X)Emacs`: http://www.gnu.org/software/emacs/
160 .. _TextMate: http://macromates.com/
160 .. _TextMate: http://macromates.com/
161 .. _vim: http://www.vim.org/
161 .. _vim: http://www.vim.org/
162
163 .. _custom_keyboard_shortcuts
164
165 Keyboard Shortcuts
166 ==================
167
168 .. versionchanged:: 5.0
169
170 You can customise keyboard shortcuts for terminal IPython. Put code like this in
171 a :ref:`startup file <startup_files>`::
172
173 from IPython import get_ipython
174 from prompt_toolkit.enums import DEFAULT_BUFFER
175 from prompt_toolkit.keys import Keys
176 from prompt_toolkit.filters import HasFocus, HasSelection, ViInsertMode, EmacsInsertMode
177
178 ip = get_ipython()
179 insert_mode = ViInsertMode() | EmacsInsertMode()
180
181 def insert_unexpected(event):
182 buf = event.current_buffer
183 buf.insert_text('The Spanish Inquisition')
184
185 # Register the shortcut if IPython is using prompt_toolkit
186 if getattr(ip, 'pt_cli'):
187 registry = ip.pt_cli.application.key_bindings_registry
188 registry.add_binding(Keys.ControlN,
189 filter=(HasFocus(DEFAULT_BUFFER)
190 & ~HasSelection()
191 & insert_mode))(insert_unexpected)
192
193 For more information on filters and what you can do with the ``event`` object,
194 `see the prompt_toolkit docs
195 <http://python-prompt-toolkit.readthedocs.io/en/latest/pages/building_prompts.html#adding-custom-key-bindings>`__.
General Comments 0
You need to be logged in to leave comments. Login now