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:
parent
1bfba99b79
commit
5524de5ca0
2 changed files with 18 additions and 0 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue