From 066790552a796feceb88906e42dbd2de09ea50f2 Mon Sep 17 00:00:00 2001 From: Darren Schroeder <343840+fdncred@users.noreply.github.com> Date: Sun, 6 Aug 2023 06:59:06 -0500 Subject: [PATCH] add keybinding for search-history (#9930) # Description This PR adds a keybinding in the rust code for `search-history` aka reverse-search as `ctrl+q` so it does not overwrite `history-search` with `ctrl+r` as it does now. This PR supercedes #9862. Thanks to @SUPERCILEX for bringing this to our attention. # User-Facing Changes <!-- List of all changes that impact the user experience here. This helps us keep track of breaking changes. --> # Tests + Formatting <!-- Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect -A clippy::result_large_err` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass - `cargo run -- -c "use std testing; testing run-tests --path crates/nu-std"` to run the tests for the standard library > **Note** > from `nushell` you can also use the `toolkit` as follows > ```bash > use toolkit.nu # or use an `env_change` hook to activate it automatically > toolkit check pr > ``` --> # After Submitting <!-- If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --> --- crates/nu-cli/src/reedline_config.rs | 6 ++++++ crates/nu-utils/src/sample_config/default_config.nu | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/crates/nu-cli/src/reedline_config.rs b/crates/nu-cli/src/reedline_config.rs index 525e9366d..8899e46d6 100644 --- a/crates/nu-cli/src/reedline_config.rs +++ b/crates/nu-cli/src/reedline_config.rs @@ -523,6 +523,12 @@ fn add_menu_keybindings(keybindings: &mut Keybindings) { KeyCode::F(1), ReedlineEvent::Menu("help_menu".to_string()), ); + + keybindings.add_binding( + KeyModifiers::CONTROL, + KeyCode::Char('q'), + ReedlineEvent::SearchHistory, + ); } pub enum KeybindingsMode { diff --git a/crates/nu-utils/src/sample_config/default_config.nu b/crates/nu-utils/src/sample_config/default_config.nu index 271072430..29e856521 100644 --- a/crates/nu-utils/src/sample_config/default_config.nu +++ b/crates/nu-utils/src/sample_config/default_config.nu @@ -392,7 +392,7 @@ $env.config = { { name: search_history modifier: control - keycode: char_r + keycode: char_q mode: [emacs, vi_normal, vi_insert] event: { send: searchhistory } }