diff options
| -rw-r--r-- | main.c | 13 |
1 files changed, 13 insertions, 0 deletions
@@ -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); |
