diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb index a6424efcc1..ea1c913ee9 100644 --- a/lib/reline/line_editor.rb +++ b/lib/reline/line_editor.rb @@ -1957,6 +1957,7 @@ class Reline::LineEditor ed_prev_char(key) @config.editing_mode = :vi_command end + alias_method :vi_movement_mode, :vi_command_mode private def vi_next_word(key, arg: 1) if @line.bytesize > @byte_pointer diff --git a/test/reline/yamatanooroti/test_rendering.rb b/test/reline/yamatanooroti/test_rendering.rb index 8bd72db4ba..dea3e7ff47 100644 --- a/test/reline/yamatanooroti/test_rendering.rb +++ b/test/reline/yamatanooroti/test_rendering.rb @@ -384,6 +384,20 @@ begin EOC end + def test_binding_for_vi_movement_mode + write_inputrc <<~LINES + set editing-mode vi + "\\C-j": vi-movement-mode + LINES + start_terminal(5, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/bin/multiline_repl}, startup_message: 'Multiline REPL.') + write(":1234\C-jhhhi0") + close + assert_screen(<<~EOC) + Multiline REPL. + prompt> :01234 + EOC + end + private def write_inputrc(content) File.open(@inputrc_file, 'w') do |f| f.write content