Skip to content

A Visual Studio Code extension to enhance developer experience by enabling a keyboard-driven workflow. Inspired by LunarVim.

License

Notifications You must be signed in to change notification settings

fathulfahmy/lunarkeymap

Repository files navigation

Contributors Forks Stargazers Issues MIT License LinkedIn


Logo

Lunar Keymap

Enhancing developer experience by enabling a keyboard-driven workflow. Inspired by LunarVim.

Report Bug · Request Feature

Table of Contents

  1. About The Project
  2. Getting Started
  3. Usage
  4. Known Issues
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

LunarKeymap is a Visual Studio Code extension to enhance developer experience by enabling a keyboard-driven workflow. Features include code editor navigation, file and folder creation, component visibility toggles, debugging and git keybindings, and many more.

(back to top)

Getting Started

Prerequisites

  • Visual Studio Code

Installation

Install LunarKeymap via Visual Studio Marketplace.

(back to top)

Usage

Full list of shortcuts are available on Feature Contributions.

Editor Navigation

Demo

Key Features
ctrl+h Move focus left
ctrl+j Move focus down
ctrl+k Move focus up
ctrl+l Move focus right
alt+j Move focus terminal
tab Cycle next editor
shift+tab Cycle previous editor

Demo

Key Features
ctrl+j Cycle next suggestion or option
ctrl+k Cycle previous suggestion or option
ctrl+shift+h Increase editor size
ctrl+shift+l Decrease editor size

(back to top)

Explorer Navigation

Demo

Key Features
ctrl+e Open explorer
h Collapse list
j Move down
k Move up
l Expand list
o Expand list

Demo

Key Features
a Add new file
shift+a Add new folder
d Delete file
x Cut file
y Copy file
p Paste file
r Rename file
enter Select file

(back to top)

Menu (Common)

Demo

Key Features
ctrl+space Open shortcut menu
ctrl+space+; Open command palette
ctrl+space+/ Toggle comment
ctrl+space+? View all references
ctrl+space+e Toggle file explorer
ctrl+space+h Horizontally split editor
ctrl+space+v Vertically split editor
ctrl+space+m Toggle minimap
ctrl+space+x View extensions
ctrl+space+z Toggle zen mode

(back to top)

Menu (Editor)

Demo

Key Features
ctrl+space Open shortcut menu
ctrl+space+b+n Cycle next editor
ctrl+space+b+p Cycle previous editor
ctrl+space+b+d Close current editor
ctrl+space+b+u Reopen closed editor
ctrl+space+b+x Close other editors
ctrl+space+b+N Open new editor
ctrl+space+b+y Copy editor to clipboard
ctrl+space+b+h Move current editor to left group
ctrl+space+b+j Move current editor to below group
ctrl+space+b+k Move current editor to above group
ctrl+space+b+l Move current editor to right group

(back to top)

Menu (Others)

  • Buffer b
  • Debug d
  • Find & Replace f
  • Git g
  • LSP l
  • Open o
  • Peek p
  • Terminal t
  • UI toggles u
  • Window w

(back to top)

Default Settings

"vim.useSystemClipboard": true,
"vim.useCtrlKeys": true,
"vim.easymotion": true,
"vim.incsearch": true,
"vim.hlsearch": true,
"vim.sneak": true,
"vim.handleKeys": {
  "<C-space>": false,
  "<C-e>": false,
  "<C-h>": false,
  "<C-j>": false,
  "<C-k>": false,
  "<C-l>": false,
  "<C-d>": true
}

(back to top)

Change Menu Shortcut

  1. Open command palette ctrl+shift+p
  2. Open Keyboard Shortcuts (JSON)
  3. Add
[
  {
    "key": "ctrl+space",
    "command": "whichkey.show"
  },

  // replace ctrl+space with your keybinding e.g.

  {
    "key": "ctrl+w",
    "command": "whichkey.show"
  }
]
  1. Save file ctrl+s
  2. Open command palette ctrl+shift+p
  3. Open User Settings (JSON)
  4. Add
"vim.handleKeys": {
  "<C-space>": false,
},

// replace ctrl+space with your keybinding e.g.

"vim.handleKeys": {
  "<C-w>": false,
},
  1. Save user settings ctrl+s

(back to top)

Known Issues

This extension does not currently support VS Code's Vim Neovim mode or any other Neovim extensions. To use Neovim within VS Code, both VS Code and the user's Neovim configuration must be set up. Since VS Code extensions do not have direct access to external applications such as Neovim, additional configuration is required for integration.

For detailed guidance on embedding Neovim in VS Code, refer to Chris Chiarulli's tutorial.

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Go to LunarKeymap GitHub repository.
  2. Open package.json.
  3. Add JSON object to contributes.configurationDefaults or contributes.keybindings.
  4. Open a pull request.

Top contributors:

contrib.rocks image

(back to top)

License

Distributed under the MIT License. See LICENSE.md for more information.

(back to top)

Contact

Fathul Fahmy - @fathulfahmy - mfathulfahmy@gmail.com

Download Link: https://marketplace.visualstudio.com/items?itemName=fathulfahmy.lunarkeymap

Project Link: https://github.com/fathulfahmy/lunarkeymap

(back to top)

Acknowledgments

(back to top)