Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Vim keybindings #238

Open
andrei-micuda opened this issue Aug 6, 2024 · 3 comments · May be fixed by #241 or hootanht/NetPad#1
Open

Add support for Vim keybindings #238

andrei-micuda opened this issue Aug 6, 2024 · 3 comments · May be fixed by #241 or hootanht/NetPad#1
Labels
enhancement New feature or request

Comments

@andrei-micuda
Copy link

Adding support for Vim keybindings (similar to the VsVim extension for Visual Studio) would be a very nice addition to the development experience.

@tareqimbasher
Copy link
Owner

tareqimbasher commented Aug 6, 2024

Thanks for the feedback. Will do.

hootanht added a commit to hootanht/NetPad that referenced this issue Aug 10, 2024
Fixes tareqimbasher#238

Add support for Vim keybindings to the text editor.

* **BuiltinShortcuts**:
  - Add Vim keybindings to `BuiltinShortcuts` in `src/Apps/NetPad.Apps.App/App/src/core/@application/shortcuts/builtin-shortcuts.ts`.
  - Include keybindings for common Vim commands like `Escape`, `:w`, `:q`, and `:wq`.

* **ITextEditorService**:
  - Update `ITextEditorService` interface in `src/Apps/NetPad.Apps.App/App/src/core/@application/editor/itext-editor-service.ts` to include methods for enabling and disabling Vim mode.

* **TextEditor**:
  - Implement methods to enable and disable Vim mode in `TextEditor` class in `src/Apps/NetPad.Apps.App/App/src/core/@application/editor/text-editor.ts`.
  - Use `monaco-vim` library to integrate Vim keybindings with Monaco editor.
@hootanht hootanht linked a pull request Aug 10, 2024 that will close this issue
hootanht added a commit to hootanht/NetPad that referenced this issue Aug 12, 2024
Fixes tareqimbasher#238

Add support for Vim keybindings in the text editor service.

* **TextEditorService**:
  - Implement `enableVimMode` and `disableVimMode` methods to enable and disable Vim mode on the active editor.
* **package.json**:
  - Add `monaco-vim` as a dependency.
@hootanht hootanht linked a pull request Aug 12, 2024 that will close this issue
@tareqimbasher tareqimbasher added the enhancement New feature or request label Aug 13, 2024
@tareqimbasher
Copy link
Owner

tareqimbasher commented Aug 26, 2024

Update: I've made some progress here and I have a working version. Currently trying to figure out the best spot to put the edit status indicator and command input in the statusbar.

@keifererikson
Copy link

Super excited to hear this feature is close to implementation! <3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants