#!/usr/bin/env python """ Example that displays how to switch between Emacs and Vi input mode. """ from prompt_toolkit import prompt from prompt_toolkit.application.current import get_app from prompt_toolkit.enums import EditingMode from prompt_toolkit.key_binding import KeyBindings def run(): # Create a `KeyBindings` that contains the default key bindings. bindings = KeyBindings() # Add an additional key binding for toggling this flag. @bindings.add('f4') def _(event): " Toggle between Emacs and Vi mode. " if event.app.editing_mode == EditingMode.VI: event.app.editing_mode = EditingMode.EMACS else: event.app.editing_mode = EditingMode.VI def bottom_toolbar(): " Display the current input mode. " if get_app().editing_mode == EditingMode.VI: return ' [F4] Vi ' else: return ' [F4] Emacs ' prompt('> ', key_bindings=bindings, bottom_toolbar=bottom_toolbar) if __name__ == '__main__': run()