I know there is VSCodeVim/Vim working on enabling VIM key binding for VS Code, but it would be great if monaco-editor have VIM key binding as well.
Any update on this?
This is essential if using as editor for online code editors. Please bump up priority :)
Is it possible to use neovim and WebSocket?
Any update on this?
this will resolve iPad Pro keyboard (arrows) issue )
Definitely desired!!!
Since 2 years have passed since originally posted, I wonder if you will plan to do this?
I just started a bounty for this issue (pledged $50)
https://www.bountysource.com/issues/37736535-vim-key-binding-support
Feel free to add to the bounty to incentivize this issue
I have finished a prototype for vim mode. Demo @ https://editor-a5ea1.firebaseapp.com/
There may be some edge cases as I am not a heavy VIM user so can't test all of it by myself, but most of the functionalities are working
@brijeshb42 I just tried it for a bit and it feels great 馃憦馃憦馃憦. You can have a couple 馃嵑 on me
@brijeshb42, that seems interesting! Do you plan to open source the implementation?
I just have to cleanup some code and create an easy to use api for the extension. Then I'll opensource it
Published https://github.com/brijeshb42/monaco-vim
It's really cool. Thanks!
@brijeshb42, one more question: is the approach you take in the implementation generic enough to accommodate other bindings like Emacs, etc.?
For example, if I were to implement Emacs bindings for Monaco, I'd grab a CM keymap for Emacs, then plug it into your work, I should have Emacs bindings. Is that right?
Thanks.
@hifall That would have worked, for say, if I released keybindings for emacs and you wanted to create a sublime keybinding as they both are direct mapping of keypress to some action on the editor. Vim is different because of its modal nature. The adapter that I have written might help though has it has a lot of functions already implemented. But you can't directly pickup CM's emacs code and expect it to work.
That makes sense. I hope there will be an Emacs or Sublime-based implementation soon so that others can build more bindings off of that.
If you see the demo, there's already an emacs mode checkbox.
@brijeshb42 wow, cheers from all of us, that is awesome!
What's the status of it? Ready to be used in a production app (we're working on an IDE for Ionic Framework and I can't live without vim bindings).
Also, is there a way for us to listen for certain tab commands like gt and gT so we can switch tabs in our tool?
@mlynch I created it to be used @ Hackerrank. It is already being used in production by us. Besides that, Expo and Repl.it are using it.
Regarding usage, it is just a wrapper on top of Codemirror's vim implementation. So you can do anything that is allowed by the Codemirror VIM api. You can read about that here. You can always open issues if you encounter any at the monaco-vim repo as it concerns Hackerank also.
@alexandrudima I just want to point out that this is the most thumbed up issue on this repo by a very wide margin (issues sorted by reactions) - double the reactions of the next most thumbed up issue.
I'm aware that this in no way dictates your roadmap, but can you at least comment on whether vim keybindings are on the core team's radar?
I am revisiting this issue. As the popularity of monaco editor now, I am thinking about it would make sense for the monaco-editor to add a js/ts based plugin system.
Most helpful comment
Any update on this?