mirror of
https://github.com/zed-industries/zed.git
synced 2024-11-08 07:35:01 +03:00
vim keybinding updates (#3057)
Release Notes: - vim: Add ctrl-i to go forward ([#1732](https://github.com/zed-industries/community/issues/1732)). ctrl-o was already supported. - vim: Add `g <space>` to open the current snippet in its own file. - vim: Escape will now return to normal mode even if completion menus are open (use `ctrl-x ctrl-z` to hide menus, as in vim). - vim: Add key bindings for Zed's various completion mechanisms: - - `ctrl-x ctrl-o` to open the completion menu, - - `ctrl-x ctrl-l` to open the LSP action menu, - - `ctrl-x ctrl-c` to trigger Copilot (requires configuring copilot), - - `ctrl-x ctrl-a` to trigger the inline Assistant (requires configuring openAI), NOTE: we should add these to the docs before shipping 0.107 to stable.
This commit is contained in:
commit
91adefedfa
@ -95,6 +95,7 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"ctrl-o": "pane::GoBack",
|
"ctrl-o": "pane::GoBack",
|
||||||
|
"ctrl-i": "pane::GoForward",
|
||||||
"ctrl-]": "editor::GoToDefinition",
|
"ctrl-]": "editor::GoToDefinition",
|
||||||
"escape": [
|
"escape": [
|
||||||
"vim::SwitchMode",
|
"vim::SwitchMode",
|
||||||
@ -145,6 +146,7 @@
|
|||||||
"g shift-s": "project_symbols::Toggle",
|
"g shift-s": "project_symbols::Toggle",
|
||||||
"g .": "editor::ToggleCodeActions", // zed specific
|
"g .": "editor::ToggleCodeActions", // zed specific
|
||||||
"g shift-a": "editor::FindAllReferences", // zed specific
|
"g shift-a": "editor::FindAllReferences", // zed specific
|
||||||
|
"g space": "editor::OpenExcerpts", // zed specific
|
||||||
"g *": [
|
"g *": [
|
||||||
"vim::MoveToNext",
|
"vim::MoveToNext",
|
||||||
{
|
{
|
||||||
@ -582,11 +584,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"context": "Editor && vim_mode == insert && !menu",
|
"context": "Editor && vim_mode == insert",
|
||||||
"bindings": {
|
"bindings": {
|
||||||
"escape": "vim::NormalBefore",
|
"escape": "vim::NormalBefore",
|
||||||
"ctrl-c": "vim::NormalBefore",
|
"ctrl-c": "vim::NormalBefore",
|
||||||
"ctrl-[": "vim::NormalBefore"
|
"ctrl-[": "vim::NormalBefore",
|
||||||
|
"ctrl-x ctrl-o": "editor::ShowCompletions",
|
||||||
|
"ctrl-x ctrl-a": "assistant::InlineAssist", // zed specific
|
||||||
|
"ctrl-x ctrl-c": "copilot::Suggest", // zed specific
|
||||||
|
"ctrl-x ctrl-l": "editor::ToggleCodeActions", // zed specific
|
||||||
|
"ctrl-x ctrl-z": "editor::Cancel"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -16,6 +16,7 @@ fn normal_before(_: &mut Workspace, action: &NormalBefore, cx: &mut ViewContext<
|
|||||||
vim.stop_recording_immediately(action.boxed_clone());
|
vim.stop_recording_immediately(action.boxed_clone());
|
||||||
if count <= 1 || vim.workspace_state.replaying {
|
if count <= 1 || vim.workspace_state.replaying {
|
||||||
vim.update_active_editor(cx, |editor, cx| {
|
vim.update_active_editor(cx, |editor, cx| {
|
||||||
|
editor.cancel(&Default::default(), cx);
|
||||||
editor.change_selections(Some(Autoscroll::fit()), cx, |s| {
|
editor.change_selections(Some(Autoscroll::fit()), cx, |s| {
|
||||||
s.move_cursors_with(|map, mut cursor, _| {
|
s.move_cursors_with(|map, mut cursor, _| {
|
||||||
*cursor.column_mut() = cursor.column().saturating_sub(1);
|
*cursor.column_mut() = cursor.column().saturating_sub(1);
|
||||||
|
Loading…
Reference in New Issue
Block a user