From d83cc235924cacceeea86c890a404f497a0a74de Mon Sep 17 00:00:00 2001 From: WormHeamer Date: Fri, 2 Jan 2026 05:52:07 -0500 Subject: add ! command --- main.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/main.c b/main.c index a5b0dae..e3b7784 100644 --- a/main.c +++ b/main.c @@ -1477,6 +1477,7 @@ void mode_key_normal(Editor *e, u32 c) { eb->cur = txt_insert(eb->cur, e->yank.s, e->yank.n); for (u32 i = 0; i < e->yank.n; i++) eb->cur = cprev(eb->cur); break; + case 'd': { TxtLoc before = eb->cur; if (motion(&eb->cur, vui_key())) { @@ -1484,6 +1485,18 @@ void mode_key_normal(Editor *e, u32 c) { eb->cur = txt_delete_range(before, eb->cur); } } break; + + case '!': { + TxtLoc before = eb->cur, after = eb->cur; + if (motion(&after, vui_key())) { + Str s = get_input_line(S("Command: ")); + if (s.n > 0) { + yank_range(e, before, after); + shell_replace(before, after, str_to_cstr(s, &e->scratch)); + } + } + } break; + case 'y': { TxtLoc l = eb->cur; if (motion(&l, vui_key())) yank_range(e, eb->cur, l); -- cgit v1.2.3