blob: 249c7efd573cf948800db0e585dc83ee4744361c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
#!/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()
|