1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

Add aliases for commands for moving macro

This commit is contained in:
aycabta 2019-06-03 03:41:40 +09:00
parent 1bfba99b79
commit 5524de5ca0
2 changed files with 18 additions and 0 deletions

View file

@ -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

View file

@ -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