diff options
author | a5ob7r <12132068+a5ob7r@users.noreply.github.com> | 2021-07-08 07:05:05 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-07-07 22:05:05 +0000 |
commit | 72675db3826ced63990fdede3dcaf07e76b1dde7 (patch) | |
tree | 6feec37157f281f43f2b7fd577beeb4be70f0ede | |
parent | 0486c7cb138564422a11d14ce002dd121327d700 (diff) | |
download | alacritty-72675db3826ced63990fdede3dcaf07e76b1dde7.tar.gz alacritty-72675db3826ced63990fdede3dcaf07e76b1dde7.zip |
Fix leaving vi mode with active selection
This bug comes from 530de00049c2afcc562d36ccdb3e6afa2fe396a5. The vi
cursor movement changes text selection range when it is on vi mode. On
the other hand the cursor movement doesn't change the range when it
isn't on vi mode. So preserve text selection range by toggling vi mode
early.
-rw-r--r-- | CHANGELOG.md | 1 | ||||
-rw-r--r-- | alacritty.yml | 6 | ||||
-rw-r--r-- | alacritty/src/config/bindings.rs | 8 |
3 files changed, 8 insertions, 7 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e5543b1..bd81bd57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Incorrect vi cursor position after invoking `ScrollPage*` action - Slow PTY read performance with extremely dense grids - Crash when resizing during vi mode +- Unintentional text selection range change after leaving vi mode ## 0.8.0 diff --git a/alacritty.yml b/alacritty.yml index 21f06fd0..a7628203 100644 --- a/alacritty.yml +++ b/alacritty.yml @@ -458,7 +458,7 @@ # Each hint must have a `regex` and either an `action` or a `command` field. # The fields `mouse`, `binding` and `post_processing` are optional. # - # The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and + # The fields `command`, `binding.key`, `binding.mods`, `binding.mode` and # `mouse.mods` accept the same values as they do in the `key_bindings` section. # # The `mouse.enabled` field controls if the hint should be underlined while @@ -730,11 +730,11 @@ #- { key: End, mods: Shift, mode: ~Alt, action: ScrollToBottom } # Vi Mode - #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom } #- { key: Space, mods: Shift|Control, mode: ~Search, action: ToggleViMode } + #- { key: Space, mods: Shift|Control, mode: Vi|~Search, action: ScrollToBottom } #- { key: Escape, mode: Vi|~Search, action: ClearSelection } - #- { key: I, mode: Vi|~Search, action: ScrollToBottom } #- { key: I, mode: Vi|~Search, action: ToggleViMode } + #- { key: I, mode: Vi|~Search, action: ScrollToBottom } #- { key: C, mods: Control, mode: Vi|~Search, action: ToggleViMode } #- { key: Y, mods: Control, mode: Vi|~Search, action: ScrollLineUp } #- { key: E, mods: Control, mode: Vi|~Search, action: ScrollLineDown } diff --git a/alacritty/src/config/bindings.rs b/alacritty/src/config/bindings.rs index c324459e..57237ad3 100644 --- a/alacritty/src/config/bindings.rs +++ b/alacritty/src/config/bindings.rs @@ -424,16 +424,16 @@ pub fn default_key_bindings() -> Vec<KeyBinding> { F19, ~BindingMode::VI, ~BindingMode::SEARCH; Action::Esc("\x1b[33~".into()); F20, ~BindingMode::VI, ~BindingMode::SEARCH; Action::Esc("\x1b[34~".into()); NumpadEnter, ~BindingMode::VI, ~BindingMode::SEARCH; Action::Esc("\n".into()); - Space, ModifiersState::SHIFT | ModifiersState::CTRL, +BindingMode::VI, ~BindingMode::SEARCH; - Action::ScrollToBottom; Space, ModifiersState::SHIFT | ModifiersState::CTRL, ~BindingMode::SEARCH; Action::ToggleViMode; + Space, ModifiersState::SHIFT | ModifiersState::CTRL, +BindingMode::VI, ~BindingMode::SEARCH; + Action::ScrollToBottom; Escape, +BindingMode::VI, ~BindingMode::SEARCH; Action::ClearSelection; I, +BindingMode::VI, ~BindingMode::SEARCH; - Action::ScrollToBottom; - I, +BindingMode::VI, ~BindingMode::SEARCH; Action::ToggleViMode; + I, +BindingMode::VI, ~BindingMode::SEARCH; + Action::ScrollToBottom; C, ModifiersState::CTRL, +BindingMode::VI, ~BindingMode::SEARCH; Action::ToggleViMode; Y, ModifiersState::CTRL, +BindingMode::VI, ~BindingMode::SEARCH; |