diff --git a/doc_src/cmds/bind.rst b/doc_src/cmds/bind.rst index c8b1635f9..d8bee0fc8 100644 --- a/doc_src/cmds/bind.rst +++ b/doc_src/cmds/bind.rst @@ -240,7 +240,7 @@ The following special input functions are available: ``history-pager`` invoke the searchable pager on history (incremental search); or if the history pager is already active, search further backwards in time. -``history-pager-delete`` +``history-delete`` permanently delete the current history item, either from the history pager or from an active up-arrow history search ``history-search-backward`` diff --git a/share/functions/__fish_shared_key_bindings.fish b/share/functions/__fish_shared_key_bindings.fish index c077deb05..1cea64246 100644 --- a/share/functions/__fish_shared_key_bindings.fish +++ b/share/functions/__fish_shared_key_bindings.fish @@ -41,8 +41,8 @@ function __fish_shared_key_bindings -d "Bindings shared between emacs and vi mod # shift-tab does a tab complete followed by a search. bind --preset $argv shift-tab complete-and-search $legacy_bind --preset $argv -k btab complete-and-search - bind --preset $argv shift-delete history-pager-delete or backward-delete-char - $legacy_bind --preset $argv -k sdc history-pager-delete or backward-delete-char + bind --preset $argv shift-delete history-delete or backward-delete-char + $legacy_bind --preset $argv -k sdc history-delete or backward-delete-char bind --preset $argv down down-or-search $legacy_bind --preset $argv -k down down-or-search diff --git a/src/input.rs b/src/input.rs index 9731f68ca..4e2815539 100644 --- a/src/input.rs +++ b/src/input.rs @@ -172,7 +172,9 @@ const fn make_md(name: &'static wstr, code: ReadlineCmd) -> InputFunctionMetadat make_md(L!("forward-single-char"), ReadlineCmd::ForwardSingleChar), make_md(L!("forward-token"), ReadlineCmd::ForwardToken), make_md(L!("forward-word"), ReadlineCmd::ForwardWord), + make_md(L!("history-delete"), ReadlineCmd::HistoryDelete), make_md(L!("history-pager"), ReadlineCmd::HistoryPager), + #[allow(deprecated)] make_md(L!("history-pager-delete"), ReadlineCmd::HistoryPagerDelete), make_md(L!("history-prefix-search-backward"), ReadlineCmd::HistoryPrefixSearchBackward), make_md(L!("history-prefix-search-forward"), ReadlineCmd::HistoryPrefixSearchForward), diff --git a/src/input_common.rs b/src/input_common.rs index 6cae42301..07ceaea15 100644 --- a/src/input_common.rs +++ b/src/input_common.rs @@ -58,11 +58,13 @@ pub enum ReadlineCmd { BackwardToken, NextdOrForwardWord, PrevdOrBackwardWord, + HistoryDelete, HistorySearchBackward, HistorySearchForward, HistoryPrefixSearchBackward, HistoryPrefixSearchForward, HistoryPager, + #[deprecated] HistoryPagerDelete, DeleteChar, BackwardDeleteChar, diff --git a/src/reader.rs b/src/reader.rs index e42ad1383..bb0a4263c 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -2971,7 +2971,8 @@ fn handle_readline_command(&mut self, c: ReadlineCmd) { }; self.insert_string(EditableLineTag::SearchField, &search_string); } - rl::HistoryPagerDelete => { + #[allow(deprecated)] + rl::HistoryDelete | rl::HistoryPagerDelete => { // Also applies to ordinary history search. let is_history_search = !self.history_search.is_at_end(); let is_autosuggestion = self.is_at_autosuggestion(); @@ -5470,6 +5471,7 @@ fn command_ends_paging(c: ReadlineCmd, focused_on_search_field: bool) -> bool { fn command_ends_history_search(c: ReadlineCmd) -> bool { #[allow(non_camel_case_types)] type rl = ReadlineCmd; + #[allow(deprecated)] !matches!( c, rl::HistoryPrefixSearchBackward @@ -5478,6 +5480,7 @@ fn command_ends_history_search(c: ReadlineCmd) -> bool { | rl::HistorySearchForward | rl::HistoryTokenSearchBackward | rl::HistoryTokenSearchForward + | rl::HistoryDelete | rl::HistoryPagerDelete | rl::BeginningOfHistory | rl::EndOfHistory diff --git a/tests/checks/tmux-history-search.fish b/tests/checks/tmux-history-search.fish index b9ae96900..030346f5c 100644 --- a/tests/checks/tmux-history-search.fish +++ b/tests/checks/tmux-history-search.fish @@ -3,11 +3,11 @@ # disable on github actions because it's flakey #REQUIRES: test -z "$CI" -# The default history-pager-delete binding is shift-delete which +# The default history-delete binding is shift-delete which # won't work on terminals that don't support CSI u, so rebind. set -g isolated_tmux_fish_extra_args -C ' set -g fish_autosuggestion_enabled 0 - bind alt-d history-pager-delete or backward-delete-char + bind alt-d history-delete or backward-delete-char ' isolated-tmux-start