From 23e77edb4e1d3501fa40fbde5eaf5efcfe3f70cd Mon Sep 17 00:00:00 2001 From: "T. Kurt Bond" Date: Sun, 7 Jul 2024 14:58:59 -0400 Subject: [PATCH 1/3] Add Emacs-style bindings to edit mode, where they didn't conflict. --- h-m-m | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/h-m-m b/h-m-m index 5d556e5..62f597f 100755 --- a/h-m-m +++ b/h-m-m @@ -1715,19 +1715,19 @@ function magic_readline(&$mm, $title) return false; } - elseif ($in==special_keys['arr_up'] || $in==special_keys['home']) + elseif ($in==special_keys['arr_up'] || $in==special_keys['home'] || $in==special_keys['ctrl_p'] || $in==special_keys['ctrl_a']) $cursor = 1; - elseif ($in==special_keys['arr_right']) + elseif ($in==special_keys['arr_right'] || $in==special_keys['ctrl_f']) $cursor = min( mb_strlen($title)+1, $cursor+1); - elseif ($in==special_keys['arr_down'] || $in==special_keys['end']) + elseif ($in==special_keys['arr_down'] || $in==special_keys['end'] || $in==special_keys['ctrl_n'] || $in==special_keys['ctrl_e']) $cursor = mb_strlen($title)+1; - elseif ($in==special_keys['arr_left']) + elseif ($in==special_keys['arr_left'] || $in==special_keys['ctrl_b']) $cursor = max(1, $cursor-1); - elseif ($in==special_keys['ctrl_arr_left'] || $in==special_keys['shift_arr_left'] || $in==special_keys['meta_arr_left']) + elseif ($in==special_keys['ctrl_arr_left'] || $in==special_keys['shift_arr_left'] || $in==special_keys['meta_arr_left'] || $in==special_keys['alt_b']) $cursor = $cursor < 3 ? 1 @@ -1741,7 +1741,7 @@ function magic_readline(&$mm, $title) ) ); - elseif ($in==special_keys['ctrl_arr_right'] || $in==special_keys['shift_arr_right'] || $in==special_keys['meta_arr_right']) + elseif ($in==special_keys['ctrl_arr_right'] || $in==special_keys['shift_arr_right'] || $in==special_keys['meta_arr_right'] || $in==special_keys['alt_f']) $cursor = $cursor > mb_strlen($title) -2 ? mb_strlen($title) + 1 @@ -1801,7 +1801,7 @@ function magic_readline(&$mm, $title) } } - elseif ($in==special_keys['ctrl_del']) + elseif ($in==special_keys['ctrl_del'] || $in==special_keys['alt_d']) { $len = mb_strlen($title); $from = From 54b623c91e09d656a003f96df99265585a0727b6 Mon Sep 17 00:00:00 2001 From: "T. Kurt Bond" Date: Sun, 7 Jul 2024 14:58:59 -0400 Subject: [PATCH 2/3] Add Emacs-style bindings to edit mode, where they didn't conflict. From e0eafa0b14d0aea80471c276071e116339684cd9 Mon Sep 17 00:00:00 2001 From: "T. Kurt Bond" Date: Thu, 15 May 2025 15:17:56 -0400 Subject: [PATCH 3/3] Add Ctrl-k to delete to end of line and Ctrl-u to delete to start of line. --- h-m-m | 11 +++++++++++ readme.md | 2 ++ 2 files changed, 13 insertions(+) diff --git a/h-m-m b/h-m-m index 0bed374..a36bd44 100755 --- a/h-m-m +++ b/h-m-m @@ -1875,6 +1875,17 @@ function magic_readline(&$mm, $title) elseif ($in==special_keys['enter']) return trim($title); + elseif ($in==special_keys['ctrl_k']) + { + $title = mb_substr ($title, 0, $cursor-1); + } + + elseif ($in==special_keys['ctrl_u']) + { + $title = mb_substr ($title, $cursor-1); + $cursor = 1; + } + elseif ($in==special_keys['ctrl_v']) { $content = diff --git a/readme.md b/readme.md index b0ccea1..6219d06 100644 --- a/readme.md +++ b/readme.md @@ -104,6 +104,8 @@ In the text editor: * `Ctrl+Delete`or `Alt-d` - deletes word * `Backspace` - deletes previous character * `ctrl+Backspace`, `ctrl+w` - deletes previous word +* `Ctrl-k` - deletes everything to the right of the cursor +* `Ctrl-u` - deletes everything to the left of the cursor * `Ctrl+v` or `Ctrl+Shift+v` - paste * `Esc` - cancels editing * `Enter` - wanna guess? ;)