Amazing, thanks for such a good video. I've spent 2 months in NeoVim mostly to learn Vim motions and... VSCode seems to have overwhelmingly better UX. Feels faster, reloading by itself etc. Superb video.
Neovim came into my view a few days ago. I've never really used it, i am mainly a VSCode guy. But this made me curious enough to try vim motions and set up my own keybindigs. Thanks a lot and we need more content like this on here.
Glad you liked it! Vim motions definitely changed the way I write and edit code. There are lots of motions that I don't know or I'm not using regularly just yet, but I'm not in a rush. Have fun exploring the Neovim ecosystem! If you have questions or need help, don't hesitate to reach out either here or on the creatures.dev Discord.
This is amazing my man. Just added this to my vscode. I mostly use vscode for debugging a little bit and to do formatting or editing of jsons. This is a game changer!
hey, I really appreciate this video, i was facing a lot of problems and you helped me solve them, i love that we have people like you in this community, thanks a lot mate, keep up the good work.
terminal vim only tryhards are so annoying. this config solves every problem ive had with the vim+vscode combination and will be a great foundation to build on top. Thank you
Great video! Just noticed that your a using a voyager keyboard and you have a kinesys keyboard in your background. What's your opinion between the two? I ask because I have a voyager and I'm struggling a bit so I'm considering to buy the kinesys.
I had the Kinesis first and I loved it, but it was too big to carry around, so that's why I got the Voyager. What problems are you having with the voyager? I actually love it. Haven't touched my Kinesis ever since I got the Voyager.
Nice video, I will try it out. I have been following Ben Awad's TS fullstack video for the last month and have found myself having to move my right hand to hit arrow keys or end a lot when writing code, and have been getting swamped with tabs since I didn't know the shortcuts to navigate between splits and tabs to close them without a mouse. One thing I think was missing in this video was navigating to terminals and swapping between them.
Good point! I’m using the default ones for the terminal (ctrl-backtick to toggle, and was it something with ][ to switch between?). I’ll think about what makes the most sense and add it to my keybindings.json file.
Amazing shortcuts and great easy to follow guide. Well done, sir! Can you share what theme do you use for VS code? And also, how did you make your cursor move so smoothly when you type and jump around?
You are a legend, I'm kind of facing issues with neovim(nvchad) it is freezing I don't know why, having the same problem with lazyvim too. So kindof thinking to switching back to vscode and came across this video. Now I'll definitely switch to vscode!
Thank you! I think I've experienced the freezing issue as well. I think it's the built-in "floating" terminal. Usually happens when I'm using just neovim and I'm using the floating terminal to run apps. I've switched over to tmux + neovim and the issue stopped happening. Is that the same issue you're having?
Hi, your video's content is great. ❤❤ Btw what tiling window app / manager you are using? And also the app shows keystroke on screen? 🥰 Also will you update the gist link in the future for more keymaps? Do you include it in your dotfiles repo or something?
Hey Kevin! Glad you liked it! Window manager: the built-in functions of Raycast www.raycast.com Keystrokes app: KeyCastr github.com/keycastr/keycastr I'm definitely going to add more keymaps - thinking of debugging keymaps right now (toggle breakpoints, run jobs etc...). I'll try to remember to update the gist, but it's better if I add them to my dotfiles somehow. Still not sure how VSCode does the sync. I might even do a Part 2 video as well.
I can see that being super useful! I have my arrow keys mapped to hjkl on my keyboard, so I don't have to move my hands to use the arrows, but I think I've seen being used to navigate. I'll look into that keymap as well. So far I got this one + the debugging keymaps, so I can already see the next video forming 😁
Thank you Anvesh! This didn't work for me, but your comment made me google around and I found out that I needed the "multi-command" extension in order to make it work. I've updated the gist in the description, but here's what worked for me: { "key": "space g g", "command": "extension.multiCommand.execute", "when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)", "args": { "sequence": ["workbench.view.scm", "workbench.scm.focus"] } }
@@nikolovlazar actually this worked perfectly fine for me: { "key": "space g g", "command": "runCommands", "when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)", "args": { "commands": ["workbench.view.scm", "workbench.scm.focus"] } }, Awesome video by the way 👏
@@GonzaloStoll hmm that's weird. for some reason my VS Code didn't wait for the first command to finish (opening the scm panel) before trying to focus on the commit input, so the focus never happened. are you running on windows/linux?
Maaaan this is just what I've been searching for!!! I used neovim, and was wondering, how can I turn vscode into neovim with it's shortcuts and etc. thank you!!
Hi Lazar, thanks for the video. When i use 'space c a' to open the code action menu, then i can only use the arrow buttons to move up and down the action menu, is there a way that we can use j , k to move up and down.
I don't have a video on it, neither I manually set that up. Check out LazyVim's docs for TypeScript: www.lazyvim.org/extras/lang/typescript to see how it configures it. There's also a page for setting up Tailwind CSS as well. Even if you don't use LazyVim, you can still replicate this config in your own setup.
You can get most of this (and a bit snappier feeling) with the VSCode Neovim plugin and the install LazyVim with the VSCode extra. Then all you have to worry about (mostly) is the workspace nav stuff.
Hmm, I couldn't make that work for some reason. I do use Neovim with LazyVim and the VSCode extra, but the Neovim plugin didn't work for me. Might give it another try!
Interesting! It took a minor amount of tweaking (Two settings and doing an apt install instead of snap) for windows + WSL. It worked immediately on my pure Linux install the last time tried. I would think it would be the same for macOS. Either way there is a few binds you have in here that aren’t covered by that and I will definitely be stealing them!!
if you can have VScode like this, why would you use Vim over this? This has more functionalities that are already there and dont need any configuration. Thanks.
You mean a reference to the possible values for the “when”? I’m not sure. I needed it as well, but managed to come up with this config. I couldn’t find a good documentation for that.
I'm using oxocarbon in neovim: github.com/nyoom-engineering/oxocarbon.nvim. But I modified it slightly in some places so it plays nicely with other plugins. Here's the full config: github.com/nikolovlazar/dotfiles/blob/main/.config/nvim/lua/plugins/colorscheme.lua
It's the ZSA Voyager! www.zsa.io/voyager. My main driver before was my Kinesis Advantage (top shelf behind me), but it was too big to carry it around, so I switched to the Voyager.
Glad you liked it! Btw I just checked again and "space c r" works fine for me. Just gotta make sure your cursor is on a variable/argument/function/something you can rename. This is the command again: { "key": "space c r", "command": "editor.action.rename", "when": "vim.mode == 'Normal' && editorTextFocus" },
Awesome video! When I toggle the sidebar it does not focus on it, so I still have to click or have a second command for focusing. Is it the same for you?
Yep, " e" just seems to toggle the sidebar, but not actually focus on it. You'd need to additionally invoke the "workbench.action.focusSideBar" in order to focus on the sidebar, but it gets tricky when you want to hide it. I think you'd need to define multiple key configs with different "when" and commands in order to achieve this effect.
@@nikolovlazar manage to fix this. When you are in the editor it will open the sidebar and focus the current file. If you are in the sidebar it will close it and focus on the editor. Not pretty but it works(I haven't tested this much, but so far I don''t see problems) :D { "key": "space e", "command": "extension.multiCommand.execute", "args": { "sequence": [ "workbench.action.toggleSidebarVisibility", "workbench.files.action.focusFilesExplorer" ] }, "when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus) && !sideBarFocus" }, { "key": "space e", "command": "extension.multiCommand.execute", "args": { "sequence": [ "workbench.action.toggleSidebarVisibility", "workbench.action.focusActiveEditorGroup" ] }, "when": "sideBarFocus && !inputFocus" },
@@zdravkoiliev4814 it's working perfectly! There's one more use case that needs to be handled - when you're focused on your editor but the sidebar is still visible: { "key": "space e", "when": "vim.mode == 'Normal' && editorTextFocus && foldersViewVisible", "command": "workbench.action.toggleSidebarVisibility" } love how the toggle works now!
Hey! This one is Oxocarbon: github.com/nyoom-engineering/oxocarbon.nvim. Currently I'm using Cyberdream (github.com/scottmckendry/cyberdream.nvim) you can check it out in my latest streams / videos.
The only problem I have with this configuration is the following: 1. Open the explorer 2. Focus on the editor 3. Try to use / or ? to search something. Space now acts like a leader key. I could not figure out what mode vim is in when searching for a word. So I need to close the explorer and search something like that. Not very good. :( Is there a solution for this?
Honestly me too, that's why I'm staying with Neovim 😁 VSCode does have keybindings for debugging actions like "step over" and "add breakpoint". You can extend this configuration with those keybindings if you want to cover debugging as well.
@@nikolovlazar Thanks for the response. I would love to switch to Neovim. But I do flutter too and there is a whole new areas with emulators and AVDs. I haven't tried it yet so having doubt about that too.
yeah that could be tricky. everything is a command and can be triggered via the command line, but in some cases IDEs put that command behind a button (eg. Play button in Xcode).
So many of these commands already have a built in keybinding. This is basically a loooooong video about how to do keybindings 😴 😴 gotta get back to work and actually code faster.. Would recommend just summarizing each key bindings you use and all the condition predicates instead so we can actually get through these in time.
Of course they do. I do mention in the beginning that this video is about matching Neovim's keymaps. It's not about extending VS Code. Thank you for the recommendation though!
I made some changes since then, but still check it out! 😁 Video on my latest setup: th-cam.com/video/G7-qUMKSH_Y/w-d-xo.html Dotfiles: github.com/nikolovlazar/dotfiles
Thanks for watching! I already have a few more keybindings in mind, so there might be a Part 2 video soon. What would you like to see?
I would love that! your keybindings helped me so much.
Amazing, thanks for such a good video. I've spent 2 months in NeoVim mostly to learn Vim motions and... VSCode seems to have overwhelmingly better UX. Feels faster, reloading by itself etc.
Superb video.
i canr believe how could you have such a great content and this little subs? Really apriciate the work you are doing!
Everyone starts from somewhere.
Neovim came into my view a few days ago. I've never really used it, i am mainly a VSCode guy.
But this made me curious enough to try vim motions and set up my own keybindigs.
Thanks a lot and we need more content like this on here.
Glad you liked it! Vim motions definitely changed the way I write and edit code. There are lots of motions that I don't know or I'm not using regularly just yet, but I'm not in a rush. Have fun exploring the Neovim ecosystem! If you have questions or need help, don't hesitate to reach out either here or on the creatures.dev Discord.
Have to be honest, didn't expected this to be that good
This is amazing my man.
Just added this to my vscode.
I mostly use vscode for debugging a little bit and to do formatting or editing of jsons. This is a game changer!
Glad you liked it man!
hey, I really appreciate this video, i was facing a lot of problems and you helped me solve them, i love that we have people like you in this community, thanks a lot mate, keep up the good work.
terminal vim only tryhards are so annoying. this config solves every problem ive had with the vim+vscode combination and will be a great foundation to build on top. Thank you
Love seeing you show the programming of vsCode keybinds you can do some really powerful stuff.
The base functionality is wild. Imagine what you can do with extensions on top of it 😁
Super helpful, thanks for putting this out! Question on shift-k when moving lines, shouldn’t the condition just be when in Visual mode?
Great video! Just noticed that your a using a voyager keyboard and you have a kinesys keyboard in your background. What's your opinion between the two? I ask because I have a voyager and I'm struggling a bit so I'm considering to buy the kinesys.
I had the Kinesis first and I loved it, but it was too big to carry around, so that's why I got the Voyager. What problems are you having with the voyager? I actually love it. Haven't touched my Kinesis ever since I got the Voyager.
Nice video, I will try it out. I have been following Ben Awad's TS fullstack video for the last month and have found myself having to move my right hand to hit arrow keys or end a lot when writing code, and have been getting swamped with tabs since I didn't know the shortcuts to navigate between splits and tabs to close them without a mouse. One thing I think was missing in this video was navigating to terminals and swapping between them.
Good point! I’m using the default ones for the terminal (ctrl-backtick to toggle, and was it something with ][ to switch between?). I’ll think about what makes the most sense and add it to my keybindings.json file.
Amazing shortcuts and great easy to follow guide. Well done, sir! Can you share what theme do you use for VS code? And also, how did you make your cursor move so smoothly when you type and jump around?
Thanks! I've updated the video description with all the info and links.
You are a legend, I'm kind of facing issues with neovim(nvchad) it is freezing I don't know why, having the same problem with lazyvim too. So kindof thinking to switching back to vscode and came across this video. Now I'll definitely switch to vscode!
Thank you! I think I've experienced the freezing issue as well. I think it's the built-in "floating" terminal. Usually happens when I'm using just neovim and I'm using the floating terminal to run apps. I've switched over to tmux + neovim and the issue stopped happening. Is that the same issue you're having?
Great video. I really wish VScode could show you the file previews when flicking between the current open files like in Neovim. Any thoughts here?
Hi, your video's content is great. ❤❤
Btw what tiling window app / manager you are using? And also the app shows keystroke on screen? 🥰
Also will you update the gist link in the future for more keymaps? Do you include it in your dotfiles repo or something?
Hey Kevin! Glad you liked it!
Window manager: the built-in functions of Raycast www.raycast.com
Keystrokes app: KeyCastr github.com/keycastr/keycastr
I'm definitely going to add more keymaps - thinking of debugging keymaps right now (toggle breakpoints, run jobs etc...). I'll try to remember to update the gist, but it's better if I add them to my dotfiles somehow. Still not sure how VSCode does the sync. I might even do a Part 2 video as well.
@@nikolovlazar can I suggest remap to previous / next selecting items from drop down menu? I wonder if vsc has those apis 🙄
I can see that being super useful! I have my arrow keys mapped to hjkl on my keyboard, so I don't have to move my hands to use the arrows, but I think I've seen being used to navigate. I'll look into that keymap as well. So far I got this one + the debugging keymaps, so I can already see the next video forming 😁
execllent video for setting up shortcuts in VSCode, Thank you sir.
This is freaking beautiful! Awesome stuff
This is the best video of this kind. Thank you.👍
This is amazing! Thank you for the bottom of my heart!
Can you make a video about your nvim setup ( keymaps, options -- explaining briefly ) & ( what are the plugins you use for web development )
That could be cool. Thanks for the idea!
Thanks for the video
20:32 to focus git message box
{
"key": "space g g",
"command": "runCommands",
"args": {
"commands": [
"workbench.scm.focus",
"list.focusFirst",
"list.select"
]
},
"when": "your-when-condition"
},
Thank you Anvesh! This didn't work for me, but your comment made me google around and I found out that I needed the "multi-command" extension in order to make it work. I've updated the gist in the description, but here's what worked for me:
{
"key": "space g g",
"command": "extension.multiCommand.execute",
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)",
"args": {
"sequence": ["workbench.view.scm", "workbench.scm.focus"]
}
}
@@nikolovlazar actually this worked perfectly fine for me:
{
"key": "space g g",
"command": "runCommands",
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus)",
"args": {
"commands": ["workbench.view.scm", "workbench.scm.focus"]
}
},
Awesome video by the way 👏
@@GonzaloStoll hmm that's weird. for some reason my VS Code didn't wait for the first command to finish (opening the scm panel) before trying to focus on the commit input, so the focus never happened. are you running on windows/linux?
Maaaan this is just what I've been searching for!!! I used neovim, and was wondering, how can I turn vscode into neovim with it's shortcuts and etc. thank you!!
Glad you liked it! Neovim rules! But VS Code is also a powerful editor. This trick brings you the best of both worlds 😁
best video about made vscode like neovim, thanks a lot !!!
Have to use vscode for work. This was amazing. Subscribed.
Now if I could only get DVT, systemverilog, mercurial working with neovim... :(
Glad you liked it! Haven't used those technologies with neovim, but I hope you get them to work.
i use vim bindings in vs code buy for file explorer part i have to use mouse mostly , this video helps me in exactly that. Thanks bro
Hi Lazar, thanks for the video.
When i use 'space c a' to open the code action menu, then i can only use the arrow buttons to move up and down the action menu, is there a way that we can use j , k to move up and down.
Great content. What about the keybindings for terminal. It'll be helpful if we can configure it also.
Thank you! I didn't actually test the terminal. If you figure it out share it in a gist!
awesome stuff!
this is so helpful thanks.
Glad it was helpful!
Hi, do you happen to have any video on how to install autocomplete or the necessary extensions for react, next tailwind etc in nvim ?
I don't have a video on it, neither I manually set that up. Check out LazyVim's docs for TypeScript: www.lazyvim.org/extras/lang/typescript to see how it configures it. There's also a page for setting up Tailwind CSS as well. Even if you don't use LazyVim, you can still replicate this config in your own setup.
@@nikolovlazar thanks 👑
I'd love to watch a full vccode set up video ❤
That’s interesting! What exactly are you interested to see?
@@nikolovlazar It'd be cool if you show us how to set up a neovim-like experience in vscode from scratch.
You can get most of this (and a bit snappier feeling) with the VSCode Neovim plugin and the install LazyVim with the VSCode extra. Then all you have to worry about (mostly) is the workspace nav stuff.
Hmm, I couldn't make that work for some reason. I do use Neovim with LazyVim and the VSCode extra, but the Neovim plugin didn't work for me. Might give it another try!
Interesting! It took a minor amount of tweaking (Two settings and doing an apt install instead of snap) for windows + WSL. It worked immediately on my pure Linux install the last time tried. I would think it would be the same for macOS.
Either way there is a few binds you have in here that aren’t covered by that and I will definitely be stealing them!!
Nice! I think I should try with a separate Neovim config just for VSCode, not reusing my existing one.
Great stuff ❤
Very useful video, thank you!
if you can have VScode like this, why would you use Vim over this? This has more functionalities that are already there and dont need any configuration. Thanks.
This is amazing. Thanks
Is there a reference to “when” commands so that I can see shortcuts reference and create my own key bindings
You mean a reference to the possible values for the “when”? I’m not sure. I needed it as well, but managed to come up with this config. I couldn’t find a good documentation for that.
Hi, Great videos Thanks.
I have a question. When I hit `-g-d ` , i cannot go to previous location using `Ctrl-O`
Any Ideas?
Hmm, not sure actually. I can't seem to reproduce it on my end. Did you figure it out in the meantime?
amazing man, could you make a video about your nvim config. Cuz i prefer walkthrough rather than just copy pastimg the dot files. thanks🎉
Thanks! I do have a video on my workflow that touches part of my nvim config: th-cam.com/video/G7-qUMKSH_Y/w-d-xo.html
@@nikolovlazarappreciate 🤝
amazing, new subscriber
what theme are you use for nvim?
I'm using oxocarbon in neovim: github.com/nyoom-engineering/oxocarbon.nvim.
But I modified it slightly in some places so it plays nicely with other plugins. Here's the full config: github.com/nikolovlazar/dotfiles/blob/main/.config/nvim/lua/plugins/colorscheme.lua
@@nikolovlazar thank you
What is your keyboard?
It's the ZSA Voyager! www.zsa.io/voyager. My main driver before was my Kinesis Advantage (top shelf behind me), but it was too big to carry it around, so I switched to the Voyager.
"voyager" buy it's not wireless :(
thanks so much for this. i downloaded your json file from github but for some reason "space c r" for rename just wont work?
Glad you liked it! Btw I just checked again and "space c r" works fine for me. Just gotta make sure your cursor is on a variable/argument/function/something you can rename.
This is the command again:
{
"key": "space c r",
"command": "editor.action.rename",
"when": "vim.mode == 'Normal' && editorTextFocus"
},
Awesome video! When I toggle the sidebar it does not focus on it, so I still have to click or have a second command for focusing. Is it the same for you?
Yep, " e" just seems to toggle the sidebar, but not actually focus on it. You'd need to additionally invoke the "workbench.action.focusSideBar" in order to focus on the sidebar, but it gets tricky when you want to hide it. I think you'd need to define multiple key configs with different "when" and commands in order to achieve this effect.
@@nikolovlazar manage to fix this. When you are in the editor it will open the sidebar and focus the current file. If you are in the sidebar it will close it and focus on the editor. Not pretty but it works(I haven't tested this much, but so far I don''t see problems) :D
{
"key": "space e",
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"workbench.action.toggleSidebarVisibility",
"workbench.files.action.focusFilesExplorer"
]
},
"when": "vim.mode == 'Normal' && (editorTextFocus || !inputFocus) && !sideBarFocus"
},
{
"key": "space e",
"command": "extension.multiCommand.execute",
"args": {
"sequence": [
"workbench.action.toggleSidebarVisibility",
"workbench.action.focusActiveEditorGroup"
]
},
"when": "sideBarFocus && !inputFocus"
},
@@zdravkoiliev4814 that's awesome! I'll test it out today. Thanks Zdravko 🙌
@@zdravkoiliev4814 it's working perfectly! There's one more use case that needs to be handled - when you're focused on your editor but the sidebar is still visible:
{
"key": "space e",
"when": "vim.mode == 'Normal' && editorTextFocus && foldersViewVisible",
"command": "workbench.action.toggleSidebarVisibility"
}
love how the toggle works now!
what font are you using?
It’s Dank Mono!
can tell me colorscheme name for neovim
Hey! This one is Oxocarbon: github.com/nyoom-engineering/oxocarbon.nvim. Currently I'm using Cyberdream (github.com/scottmckendry/cyberdream.nvim) you can check it out in my latest streams / videos.
The only problem I have with this configuration is the following:
1. Open the explorer
2. Focus on the editor
3. Try to use / or ? to search something.
Space now acts like a leader key. I could not figure out what mode vim is in when searching for a word. So I need to close the explorer and search something like that. Not very good. :( Is there a solution for this?
vim.mode != SearchInProgressMode works if anyone needs. :)
Nice! Thanks for sharing this!
I am having hard time debugging without using mouse in this set up. Would appreciate if there is any guidance related to that.
Honestly me too, that's why I'm staying with Neovim 😁 VSCode does have keybindings for debugging actions like "step over" and "add breakpoint". You can extend this configuration with those keybindings if you want to cover debugging as well.
@@nikolovlazar Thanks for the response. I would love to switch to Neovim. But I do flutter too and there is a whole new areas with emulators and AVDs. I haven't tried it yet so having doubt about that too.
yeah that could be tricky. everything is a command and can be triggered via the command line, but in some cases IDEs put that command behind a button (eg. Play button in Xcode).
Amazing vid, Thanks :-D
Your discord invite is invalid
Which one did you try? The one on creatures.dev should work.
Nice
So many of these commands already have a built in keybinding. This is basically a loooooong video about how to do keybindings 😴 😴 gotta get back to work and actually code faster..
Would recommend just summarizing each key bindings you use and all the condition predicates instead so we can actually get through these in time.
Of course they do. I do mention in the beginning that this video is about matching Neovim's keymaps. It's not about extending VS Code. Thank you for the recommendation though!
No but why is your neovim so clean? 🥹
Please share your dots.
I made some changes since then, but still check it out! 😁
Video on my latest setup: th-cam.com/video/G7-qUMKSH_Y/w-d-xo.html
Dotfiles: github.com/nikolovlazar/dotfiles