mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-26 18:03:02 +03:00
Fix missing Ctrl-[ bindings in Vim mode
This "adds" the keybindings I was missing in Vim mode (e.g. `Ctrl-[` to cancel a selection) by fixing the definitions in the keymap from `Ctrl+[` to `Ctrl-[`.
This commit is contained in:
parent
0cfec6e713
commit
04922d649c
@ -99,7 +99,7 @@
|
|||||||
"ctrl-i": "pane::GoForward",
|
"ctrl-i": "pane::GoForward",
|
||||||
"ctrl-]": "editor::GoToDefinition",
|
"ctrl-]": "editor::GoToDefinition",
|
||||||
"escape": ["vim::SwitchMode", "Normal"],
|
"escape": ["vim::SwitchMode", "Normal"],
|
||||||
"ctrl+[": ["vim::SwitchMode", "Normal"],
|
"ctrl-[": ["vim::SwitchMode", "Normal"],
|
||||||
"v": "vim::ToggleVisual",
|
"v": "vim::ToggleVisual",
|
||||||
"shift-v": "vim::ToggleVisualLine",
|
"shift-v": "vim::ToggleVisualLine",
|
||||||
"ctrl-v": "vim::ToggleVisualBlock",
|
"ctrl-v": "vim::ToggleVisualBlock",
|
||||||
@ -288,7 +288,7 @@
|
|||||||
"context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting",
|
"context": "Editor && vim_mode == normal && vim_operator == none && !VimWaiting",
|
||||||
"bindings": {
|
"bindings": {
|
||||||
"escape": "editor::Cancel",
|
"escape": "editor::Cancel",
|
||||||
"ctrl+[": "editor::Cancel"
|
"ctrl-[": "editor::Cancel"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -441,7 +441,7 @@
|
|||||||
"r": ["vim::PushOperator", "Replace"],
|
"r": ["vim::PushOperator", "Replace"],
|
||||||
"ctrl-c": ["vim::SwitchMode", "Normal"],
|
"ctrl-c": ["vim::SwitchMode", "Normal"],
|
||||||
"escape": ["vim::SwitchMode", "Normal"],
|
"escape": ["vim::SwitchMode", "Normal"],
|
||||||
"ctrl+[": ["vim::SwitchMode", "Normal"],
|
"ctrl-[": ["vim::SwitchMode", "Normal"],
|
||||||
">": "editor::Indent",
|
">": "editor::Indent",
|
||||||
"<": "editor::Outdent",
|
"<": "editor::Outdent",
|
||||||
"i": [
|
"i": [
|
||||||
@ -481,7 +481,7 @@
|
|||||||
"tab": "vim::Tab",
|
"tab": "vim::Tab",
|
||||||
"enter": "vim::Enter",
|
"enter": "vim::Enter",
|
||||||
"escape": ["vim::SwitchMode", "Normal"],
|
"escape": ["vim::SwitchMode", "Normal"],
|
||||||
"ctrl+[": ["vim::SwitchMode", "Normal"]
|
"ctrl-[": ["vim::SwitchMode", "Normal"]
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -71,6 +71,30 @@ async fn test_toggle_through_settings(cx: &mut gpui::TestAppContext) {
|
|||||||
assert_eq!(cx.mode(), Mode::Normal);
|
assert_eq!(cx.mode(), Mode::Normal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[gpui::test]
|
||||||
|
async fn test_cancel_selection(cx: &mut gpui::TestAppContext) {
|
||||||
|
let mut cx = VimTestContext::new(cx, true).await;
|
||||||
|
|
||||||
|
cx.set_state(
|
||||||
|
indoc! {"The quick brown fox juˇmps over the lazy dog"},
|
||||||
|
Mode::Normal,
|
||||||
|
);
|
||||||
|
// jumps
|
||||||
|
cx.simulate_keystrokes(["v", "l", "l"]);
|
||||||
|
cx.assert_editor_state("The quick brown fox ju«mpsˇ» over the lazy dog");
|
||||||
|
|
||||||
|
cx.simulate_keystrokes(["escape"]);
|
||||||
|
cx.assert_editor_state("The quick brown fox jumpˇs over the lazy dog");
|
||||||
|
|
||||||
|
// go back to the same selection state
|
||||||
|
cx.simulate_keystrokes(["v", "h", "h"]);
|
||||||
|
cx.assert_editor_state("The quick brown fox ju«ˇmps» over the lazy dog");
|
||||||
|
|
||||||
|
// Ctrl-[ should behave like Esc
|
||||||
|
cx.simulate_keystrokes(["ctrl-["]);
|
||||||
|
cx.assert_editor_state("The quick brown fox juˇmps over the lazy dog");
|
||||||
|
}
|
||||||
|
|
||||||
#[gpui::test]
|
#[gpui::test]
|
||||||
async fn test_buffer_search(cx: &mut gpui::TestAppContext) {
|
async fn test_buffer_search(cx: &mut gpui::TestAppContext) {
|
||||||
let mut cx = VimTestContext::new(cx, true).await;
|
let mut cx = VimTestContext::new(cx, true).await;
|
||||||
|
Loading…
Reference in New Issue
Block a user