diff options
author | aycabta <aycabta@gmail.com> | 2019-06-03 03:41:40 +0900 |
---|---|---|
committer | aycabta <aycabta@gmail.com> | 2019-06-03 03:41:40 +0900 |
commit | 5524de5ca010e92f18fa6991f7bc953bcf84169d (patch) | |
tree | 5ddf10f004bd69421bd93547c6adc48028f6363d | |
parent | 1bfba99b793e91f2d26af2ff7051a48f184f649e (diff) |
Add aliases for commands for moving macro
-rw-r--r-- | lib/reline/line_editor.rb | 7 | ||||
-rw-r--r-- | test/reline/test_within_pipe.rb | 11 |
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb index 6446879312..945c3ef71a 100644 --- a/lib/reline/line_editor.rb +++ b/lib/reline/line_editor.rb @@ -996,6 +996,7 @@ class Reline::LineEditor arg -= 1 ed_next_char(key, arg: arg) if arg > 0 end + alias_method :forward_char, :ed_next_char private def ed_prev_char(key, arg: 1) if @cursor > 0 @@ -1023,6 +1024,7 @@ class Reline::LineEditor private def ed_move_to_beg(key) @byte_pointer = @cursor = 0 end + alias_method :beginning_of_line, :ed_move_to_beg private def ed_move_to_end(key) @byte_pointer = 0 @@ -1037,6 +1039,7 @@ class Reline::LineEditor @byte_pointer += byte_size end end + alias_method :end_of_line, :ed_move_to_end private def ed_search_prev_history(key) @line_backup_in_history = @line @@ -1350,6 +1353,7 @@ class Reline::LineEditor private def ed_clear_screen(key) @cleared = true end + alias_method :clear_screen, :ed_clear_screen private def em_next_word(key) if @line.bytesize > @byte_pointer @@ -1358,6 +1362,7 @@ class Reline::LineEditor @cursor += width end end + alias_method :forward_word, :em_next_word private def ed_prev_word(key) if @byte_pointer > 0 @@ -1366,6 +1371,7 @@ class Reline::LineEditor @cursor -= width end end + alias_method :backward_word, :ed_prev_word private def em_delete_next_word(key) if @line.bytesize > @byte_pointer @@ -1477,6 +1483,7 @@ class Reline::LineEditor ed_prev_char(key) @config.editing_mode = :vi_command end + alias_method :backward_char, :ed_prev_char private def vi_next_word(key, arg: 1) if @line.bytesize > @byte_pointer diff --git a/test/reline/test_within_pipe.rb b/test/reline/test_within_pipe.rb index dc58e91e2b..b91f99e1b8 100644 --- a/test/reline/test_within_pipe.rb +++ b/test/reline/test_within_pipe.rb @@ -29,4 +29,15 @@ class Reline::WithinPipeTest < Reline::TestCase @writer.write("abcd\n") assert_equal 'd', Reline.readmultiline(&proc{ true }) end + + def test_macro_commands_for_moving + @config.add_default_key_binding("\C-x\C-a".bytes, :beginning_of_line) + @config.add_default_key_binding("\C-x\C-e".bytes, :end_of_line) + @config.add_default_key_binding("\C-x\C-f".bytes, :forward_char) + @config.add_default_key_binding("\C-x\C-b".bytes, :backward_char) + @config.add_default_key_binding("\C-x\M-f".bytes, :forward_word) + @config.add_default_key_binding("\C-x\M-b".bytes, :backward_word) + @writer.write(" def\C-x\C-aabc\C-x\C-e ghi\C-x\C-a\C-x\C-f\C-x\C-f_\C-x\C-b\C-x\C-b_\C-x\C-f\C-x\C-f\C-x\C-f\C-x\M-f_\C-x\M-b\n") + assert_equal 'a_b_c def_ ghi', Reline.readmultiline(&proc{ true }) + end end |