diff options
author | Jonathan Slenders <jonathan@slenders.be> | 2016-12-17 12:50:46 +0100 |
---|---|---|
committer | Jonathan Slenders <jonathan@slenders.be> | 2016-12-17 12:50:46 +0100 |
commit | b3e0f6c842cc1f92530fa700097d3599faa37877 (patch) | |
tree | 497d1e7e91d548cb0bc21571e93a8d217035f037 | |
parent | 513112cea977af51d334166382db4343ea24ea77 (diff) |
Added edit-and-execute-command command.
-rw-r--r-- | prompt_toolkit/key_binding/bindings/named_commands.py | 11 | ||||
-rw-r--r-- | prompt_toolkit/key_binding/bindings/vi.py | 5 |
2 files changed, 13 insertions, 3 deletions
diff --git a/prompt_toolkit/key_binding/bindings/named_commands.py b/prompt_toolkit/key_binding/bindings/named_commands.py index 2225672e..f412f197 100644 --- a/prompt_toolkit/key_binding/bindings/named_commands.py +++ b/prompt_toolkit/key_binding/bindings/named_commands.py @@ -500,3 +500,14 @@ def operate_and_get_next(event): buff.working_index = new_index event.cli.pre_run_callables.append(set_working_index) + + +@register('edit-and-execute-command') +def edit_and_execute(event): + """ + Invoke an editor on the current command line, and accept the result. + """ + buff = event.current_buffer + + buff.open_in_editor(event.cli) + buff.accept_action.validate_and_handle(event.cli, buff) diff --git a/prompt_toolkit/key_binding/bindings/vi.py b/prompt_toolkit/key_binding/bindings/vi.py index c1b168f9..4b20e9a1 100644 --- a/prompt_toolkit/key_binding/bindings/vi.py +++ b/prompt_toolkit/key_binding/bindings/vi.py @@ -13,6 +13,7 @@ from prompt_toolkit.selection import SelectionType, SelectionState, PasteMode from .utils import create_handle_decorator from .scroll import scroll_forward, scroll_backward, scroll_half_page_up, scroll_half_page_down, scroll_one_line_up, scroll_one_line_down, scroll_page_up, scroll_page_down +from .named_commands import get_by_name import prompt_toolkit.filters as filters from six.moves import range @@ -1691,9 +1692,7 @@ def load_vi_open_in_editor_bindings(registry, filter=None): navigation_mode = ViNavigationMode() handle = create_handle_decorator(registry, filter & ViMode()) - @handle('v', filter=navigation_mode) - def _(event): - event.current_buffer.open_in_editor(event.cli) + handle('v', filter=navigation_mode)(get_by_name('edit-and-execute-command')) def load_vi_system_bindings(registry, filter=None): |