diff --git a/assets/keymaps/linux/emacs.json b/assets/keymaps/linux/emacs.json new file mode 100755 index 0000000000000000000000000000000000000000..64fb3f08316668b9e1ce50c8ceaba2f253b3dbc7 --- /dev/null +++ b/assets/keymaps/linux/emacs.json @@ -0,0 +1,63 @@ +// documentation: https://zed.dev/docs/key-bindings +// +// To see the default key bindings run `zed: open default keymap` +// from the command palette. +[ + { + "context": "Editor", + "bindings": { + "ctrl-g": "editor::Cancel", + "ctrl-shift-g": "go_to_line::Toggle", + //"ctrl-space": "editor::SetMark", + "ctrl-x u": "editor::Undo", + "ctrl-x ctrl-u": "editor::Redo", + "ctrl-f": "editor::MoveRight", + "ctrl-b": "editor::MoveLeft", + "ctrl-n": "editor::MoveDown", + "ctrl-p": "editor::MoveUp", + "ctrl-a": "editor::MoveToBeginningOfLine", + "ctrl-e": "editor::MoveToEndOfLine", + "alt-f": "editor::MoveToNextSubwordEnd", + "alt-b": "editor::MoveToPreviousSubwordStart", + "ctrl-d": "editor::Delete", + "alt-d": "editor::DeleteToNextWordEnd", + "ctrl-k": "editor::CutToEndOfLine", + "ctrl-w": "editor::Cut", + "alt-w": "editor::Copy", + "ctrl-y": "editor::Paste", + "ctrl-_": "editor::Undo", + "ctrl-v": "editor::MovePageDown", + "alt-v": "editor::MovePageUp", + "ctrl-x ]": "editor::MoveToEnd", + "ctrl-x [": "editor::MoveToBeginning", + "ctrl-l": "editor::ScrollCursorCenterTopBottom", + "ctrl-s": "buffer_search::Deploy", + "ctrl-x ctrl-f": "file_finder::Toggle", + "ctrl-shift-r": "editor::Rename" + } + }, + { + "context": "Workspace", + "bindings": { + "ctrl-x k": "pane::CloseActiveItem", + "ctrl-x ctrl-c": "workspace::CloseWindow", + "ctrl-x o": "workspace::ActivateNextPane", + "ctrl-x b": "tab_switcher::Toggle", + "ctrl-x 0": "pane::CloseActiveItem", + "ctrl-x 1": "pane::CloseInactiveItems", + "ctrl-x 2": "pane::SplitVertical", + "ctrl-x ctrl-f": "file_finder::Toggle", + "ctrl-x ctrl-s": "workspace::Save", + "ctrl-x ctrl-w": "workspace::SaveAs", + "ctrl-x s": "workspace::SaveAll", + "shift shift": "file_finder::Toggle" + } + }, + { + "context": "Pane", + "bindings": { + "ctrl-alt-left": "pane::GoBack", + "ctrl-alt-right": "pane::GoForward" + } + } +] diff --git a/assets/keymaps/macos/emacs.json b/assets/keymaps/macos/emacs.json new file mode 100755 index 0000000000000000000000000000000000000000..64fb3f08316668b9e1ce50c8ceaba2f253b3dbc7 --- /dev/null +++ b/assets/keymaps/macos/emacs.json @@ -0,0 +1,63 @@ +// documentation: https://zed.dev/docs/key-bindings +// +// To see the default key bindings run `zed: open default keymap` +// from the command palette. +[ + { + "context": "Editor", + "bindings": { + "ctrl-g": "editor::Cancel", + "ctrl-shift-g": "go_to_line::Toggle", + //"ctrl-space": "editor::SetMark", + "ctrl-x u": "editor::Undo", + "ctrl-x ctrl-u": "editor::Redo", + "ctrl-f": "editor::MoveRight", + "ctrl-b": "editor::MoveLeft", + "ctrl-n": "editor::MoveDown", + "ctrl-p": "editor::MoveUp", + "ctrl-a": "editor::MoveToBeginningOfLine", + "ctrl-e": "editor::MoveToEndOfLine", + "alt-f": "editor::MoveToNextSubwordEnd", + "alt-b": "editor::MoveToPreviousSubwordStart", + "ctrl-d": "editor::Delete", + "alt-d": "editor::DeleteToNextWordEnd", + "ctrl-k": "editor::CutToEndOfLine", + "ctrl-w": "editor::Cut", + "alt-w": "editor::Copy", + "ctrl-y": "editor::Paste", + "ctrl-_": "editor::Undo", + "ctrl-v": "editor::MovePageDown", + "alt-v": "editor::MovePageUp", + "ctrl-x ]": "editor::MoveToEnd", + "ctrl-x [": "editor::MoveToBeginning", + "ctrl-l": "editor::ScrollCursorCenterTopBottom", + "ctrl-s": "buffer_search::Deploy", + "ctrl-x ctrl-f": "file_finder::Toggle", + "ctrl-shift-r": "editor::Rename" + } + }, + { + "context": "Workspace", + "bindings": { + "ctrl-x k": "pane::CloseActiveItem", + "ctrl-x ctrl-c": "workspace::CloseWindow", + "ctrl-x o": "workspace::ActivateNextPane", + "ctrl-x b": "tab_switcher::Toggle", + "ctrl-x 0": "pane::CloseActiveItem", + "ctrl-x 1": "pane::CloseInactiveItems", + "ctrl-x 2": "pane::SplitVertical", + "ctrl-x ctrl-f": "file_finder::Toggle", + "ctrl-x ctrl-s": "workspace::Save", + "ctrl-x ctrl-w": "workspace::SaveAs", + "ctrl-x s": "workspace::SaveAll", + "shift shift": "file_finder::Toggle" + } + }, + { + "context": "Pane", + "bindings": { + "ctrl-alt-left": "pane::GoBack", + "ctrl-alt-right": "pane::GoForward" + } + } +] diff --git a/crates/welcome/src/base_keymap_setting.rs b/crates/welcome/src/base_keymap_setting.rs index d212dd41703c89ac0bfbb98612efae7db15fc08d..fe17a8830e9f56ad269986460c90b6cb5b9007ce 100644 --- a/crates/welcome/src/base_keymap_setting.rs +++ b/crates/welcome/src/base_keymap_setting.rs @@ -15,6 +15,7 @@ pub enum BaseKeymap { SublimeText, Atom, TextMate, + Emacs, None, } @@ -26,6 +27,7 @@ impl Display for BaseKeymap { BaseKeymap::SublimeText => write!(f, "Sublime Text"), BaseKeymap::Atom => write!(f, "Atom"), BaseKeymap::TextMate => write!(f, "TextMate"), + BaseKeymap::Emacs => write!(f, "Emacs (beta)"), BaseKeymap::None => write!(f, "None"), } } @@ -33,20 +35,22 @@ impl Display for BaseKeymap { impl BaseKeymap { #[cfg(target_os = "macos")] - pub const OPTIONS: [(&'static str, Self); 5] = [ + pub const OPTIONS: [(&'static str, Self); 6] = [ ("VSCode (Default)", Self::VSCode), ("Atom", Self::Atom), ("JetBrains", Self::JetBrains), ("Sublime Text", Self::SublimeText), + ("Emacs (beta)", Self::Emacs), ("TextMate", Self::TextMate), ]; #[cfg(not(target_os = "macos"))] - pub const OPTIONS: [(&'static str, Self); 4] = [ + pub const OPTIONS: [(&'static str, Self); 5] = [ ("VSCode (Default)", Self::VSCode), ("Atom", Self::Atom), ("JetBrains", Self::JetBrains), ("Sublime Text", Self::SublimeText), + ("Emacs (beta)", Self::Emacs), ]; pub fn asset_path(&self) -> Option<&'static str> { @@ -56,6 +60,7 @@ impl BaseKeymap { BaseKeymap::SublimeText => Some("keymaps/macos/sublime_text.json"), BaseKeymap::Atom => Some("keymaps/macos/atom.json"), BaseKeymap::TextMate => Some("keymaps/macos/textmate.json"), + BaseKeymap::Emacs => Some("keymaps/macos/emacs.json"), BaseKeymap::VSCode => None, BaseKeymap::None => None, } @@ -65,6 +70,7 @@ impl BaseKeymap { BaseKeymap::JetBrains => Some("keymaps/linux/jetbrains.json"), BaseKeymap::SublimeText => Some("keymaps/linux/sublime_text.json"), BaseKeymap::Atom => Some("keymaps/linux/atom.json"), + BaseKeymap::Emacs => Some("keymaps/linux/emacs.json"), BaseKeymap::TextMate => None, BaseKeymap::VSCode => None, BaseKeymap::None => None,