Skip to content

Commit 8dd93bb

Browse files
committed
Add <esc><ctrl-j> to toggle edit mode
1 parent f8c0105 commit 8dd93bb

2 files changed

Lines changed: 15 additions & 6 deletions

File tree

trepan/inout/input.py

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@
3737
else:
3838
from trepan.inout.prompt_bindkeys import bindings, read_inputrc, read_init_file
3939

40-
USER_INPUTRC = os.environ.get(
41-
"TREPAN3K_INPUTRC", default_configfile("inputrc")
42-
)
40+
USER_INPUTRC = os.environ.get("TREPAN3K_INPUTRC", default_configfile("inputrc"))
4341

4442
read_inputrc(read_init_file, use_unicode=False)
4543
if osp.isfile(USER_INPUTRC):
@@ -56,17 +54,28 @@ class DebuggerUserInput(Mbase.DebuggerInputBase):
5654

5755
def __init__(self, inp=None, opts=dict()):
5856

59-
self.edit_mode = opts.get("edit_mode", "emacs")
6057
if opts.get("readline") == "prompt_toolkit":
58+
59+
edit_mode = opts.get("edit_mode", "emacs")
6160
prompt_editing_mode = (
62-
EditingMode.EMACS if self.edit_mode == "emacs" else EditingMode.VI
61+
EditingMode.EMACS if edit_mode == "emacs" else EditingMode.VI
6362
)
6463
self.session = PromptSession(
6564
editing_mode=prompt_editing_mode,
6665
enable_history_search=True,
6766
history=FileHistory(opts.get("histfile")),
6867
key_bindings=bindings,
6968
)
69+
70+
@bindings.add("escape", "c-j")
71+
def toggle_editmode(_):
72+
self.session.editing_mode = (
73+
EditingMode.VI
74+
if self.session.editing_mode == EditingMode.EMACS
75+
else EditingMode.EMACS
76+
)
77+
print(f"\nedit mode is now {self.session.editing_mode}")
78+
7079
self.input = self.session.input
7180
self.line_edit = True
7281
self.closed = False

trepan/inout/prompt_bindkeys.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,12 @@
2424

2525

2626
import pathlib
27+
import re
2728
from prompt_toolkit.key_binding import KeyBindings
2829
from typing import Callable
2930

3031
bindings = KeyBindings()
3132

32-
3333
def read_inputrc(read_init_file_fn: Callable, use_unicode: bool) -> None:
3434
"""
3535
Read GNU Readline style inputrc for prompt_toolkit

0 commit comments

Comments
 (0)