Repository: alacritty/alacritty (language: rust)

Issue:
Can not copy when `Ctrl+Shift+C` is pressed in Vi mode
### System

OS: Windows
Version: alacritty 0.13.0-rc1 (ada35ae)

### Issue

When I switch to Vi mode in Alacritty 0.13.0-rc1, press `v` to select a portion of text, and then press `Ctrl+Shift+C`, the selected text **cannot** be copied to the clipboard.

And if I set key bindings in `alacritty.toml` as follows, I can copy the selected text successfully in Vi mode:

```
[keyboard]
bindings = [
    { key = "C", mods = "Control|Shift", action = "Copy" },
    { key = "C", mods = "Control|Shift", mode = "Vi|~Search", action = "ClearSelection" },
]
```

This problem did not occur in version 0.12.3, but it first appeared in version 0.13.0-rc1



Discussion / hints:
Press `y`.
Thank you for the reply.

I would like to confirm whether this will be the case in future versions? Because in 0.12.3, pressing `Ctrl+Shift+C` could copy in Vi mode.
Reopening for now because I realized we do still have the binding, so it should technically work. Will have to look into why it doesn't.

Fix patch:
diff --git a/alacritty/src/config/bindings.rs b/alacritty/src/config/bindings.rs
index 36f5f521eb9..b75676a33bf 100644
--- a/alacritty/src/config/bindings.rs
+++ b/alacritty/src/config/bindings.rs
@@ -545,12 +545,12 @@ pub fn default_key_bindings() -> Vec<KeyBinding> {
 fn common_keybindings() -> Vec<KeyBinding> {
     bindings!(
         KeyBinding;
-        "c",    ModifiersState::CONTROL | ModifiersState::SHIFT, +BindingMode::VI, ~BindingMode::SEARCH; Action::ClearSelection;
         "v",    ModifiersState::CONTROL | ModifiersState::SHIFT, ~BindingMode::VI;                       Action::Paste;
         "f",    ModifiersState::CONTROL | ModifiersState::SHIFT, ~BindingMode::SEARCH;                   Action::SearchForward;
         "b",    ModifiersState::CONTROL | ModifiersState::SHIFT, ~BindingMode::SEARCH;                   Action::SearchBackward;
         Insert, ModifiersState::SHIFT,                           ~BindingMode::VI;                       Action::PasteSelection;
         "c",    ModifiersState::CONTROL | ModifiersState::SHIFT;                                         Action::Copy;
+        "c",    ModifiersState::CONTROL | ModifiersState::SHIFT, +BindingMode::VI, ~BindingMode::SEARCH; Action::ClearSelection;
         "0",    ModifiersState::CONTROL;                                                                 Action::ResetFontSize;
         "=",    ModifiersState::CONTROL;                                                                 Action::IncreaseFontSize;
         "+",    ModifiersState::CONTROL;                                                                 Action::IncreaseFontSize;
@@ -579,7 +579,6 @@ pub fn platform_key_bindings() -> Vec<KeyBinding> {
 pub fn platform_key_bindings() -> Vec<KeyBinding> {
     bindings!(
         KeyBinding;
-        "c",    ModifiersState::SUPER, +BindingMode::VI, ~BindingMode::SEARCH; Action::ClearSelection;
         Insert, ModifiersState::SHIFT, ~BindingMode::VI, ~BindingMode::SEARCH; Action::Esc("\x1b[2;2~".into());
         // Tabbing api.
         "t",    ModifiersState::SUPER;                                         Action::CreateNewTab;
@@ -606,6 +605,7 @@ pub fn platform_key_bindings() -> Vec<KeyBinding> {
         "n",    ModifiersState::SUPER;                                         Action::CreateNewWindow;
         "f",    ModifiersState::CONTROL | ModifiersState::SUPER;               Action::ToggleFullscreen;
         "c",    ModifiersState::SUPER;                                         Action::Copy;
+        "c",    ModifiersState::SUPER, +BindingMode::VI, ~BindingMode::SEARCH; Action::ClearSelection;
         "h",    ModifiersState::SUPER;                                         Action::Hide;
         "h",    ModifiersState::SUPER   | ModifiersState::ALT;                 Action::HideOtherApplications;
         "m",    ModifiersState::SUPER;                                         Action::Minimize;


Test patch: