Skip to content

Commit

Permalink
Add key bindings for PgUp and PgDn (#509)
Browse files Browse the repository at this point in the history
* Add key bindings for PgUp, PgDn

* Match behavior of readline 8.2

In the latest readline (8.2), page-up and page-down are bound to
history-search-backward and history-search-forward by default.

We would like reline to have the same default behavior.
  • Loading branch information
sshock authored Mar 21, 2023
1 parent ae5f9b8 commit 3aeea2a
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 0 deletions.
2 changes: 2 additions & 0 deletions lib/reline/ansi.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ class Reline::ANSI
'khome' => :ed_move_to_beg,
'kend' => :ed_move_to_end,
'kdch1' => :key_delete,
'kpp' => :ed_search_prev_history,
'knp' => :ed_search_next_history,
'kcuu1' => :ed_prev_history,
'kcud1' => :ed_next_history,
'kcuf1' => :ed_next_char,
Expand Down
14 changes: 14 additions & 0 deletions test/reline/test_ansi_with_terminfo.rb
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,20 @@ def test_kdch1
omit e.message
end

# PgUp key
def test_kpp
assert_key_binding(Reline::Terminfo.tigetstr('kpp'), :ed_search_prev_history)
rescue Reline::Terminfo::TerminfoError => e
omit e.message
end

# PgDn key
def test_knp
assert_key_binding(Reline::Terminfo.tigetstr('knp'), :ed_search_next_history)
rescue Reline::Terminfo::TerminfoError => e
omit e.message
end

# Up arrow key
def test_kcuu1
assert_key_binding(Reline::Terminfo.tigetstr('kcuu1'), :ed_prev_history)
Expand Down

0 comments on commit 3aeea2a

Please sign in to comment.