switching to Neovim was one of the best decisions i made and i mostly work in web dev and a little python and rust for my side projects. Vscode could be regarded as the best experience especially if you are working in web dev but what most people forget is that installing 10 plugins to provide info and utilities is only going to help not make you a better programmer and most of the essential plugins are already available in neovim. For me atleast neovim provided a much much better experience and feels way more like an IDE after setting it up rather than VScode's impersonation of an IDE and switching actually made it more clear how much of a memory hog VScode is.(aka i can run 2 environments due to FullStack development and my laptop does not die completely on running). Anyone that is still in doubt take some time to learn neovim and using terminals like kitty or tmux in tandem and i promise it will be a far better experience.
Really great content. Thanks a lot for this one. It was really useful for me to see the setup of debugger in Neovim. I have used Neovim for more than 1 year now but with no debugger at all. Now I'll try these plugins that you mentioned since I am using go as well 😃
I’ve moved from Packer to Lazy since:) but vim should be aware of exposed methods for different plugins. Is that not something you get trying to run tab completions?
Nice vid. Using dap as well. I used intellij ide with the same results. I was wondering if you could see value of a parameter in a pop-up when you are on the variable. That is sometimes handy when dealing with arrays
Hmmm 🤔 definitely interesting ! Sounds like this would require some lua and can be VERY helpful. At the end of the day , the UI is a bunch of buffers, that you can open wherever you choose, I don’t see a reason why you couldn’t. BTW, you could switch you main screen the variable console buffer for quick investigation and then scroll it back
Hey, don't you find it interesting that the output of a program goes to a REPL element, not console? The most annoying part with REPL is that it does not auto-scroll the output.
Yep, I do. TBH this system isn't perfect, and while you can master the REPL console, I don't think it's there yet... Hopefully the UX will improve soon so we can cover a better version of debugging in Neovim!
Hey! Thanks! So break line is just a feature of DAP, which you can match to whatever you want as a key map, and the sign is also controlable (in my case - a big red dot), the line is auto marked by DAP when you're in a debug session. I didn't make any special changes there but you're more than welcome to check my dotfiles: dotfiles.omerxx.com
When I set the keymap for the debugger I have an error saying that telescope can’t be found. I’ve verified and telescope is not using any of the keymaps I use for the debugger. Any keymap gives me the error. Do you have an idea on what’s happening?
Hey love your vids. They are really making me excited about code and neovim! A couple of questions. How did you get the Red Dot in your config file? Sorry if this is easy and I dont know it. Also, how did you get Telescope and other pop ups to be so nicely styled? I am using capucino and mine does not look so vibrant. I know not substantive... but really curious how you got yours looking so cool!
Hello mate! Thanks for the kind words:) The red breaking point is just a configuration of the plugin where I replaced the icons. Checkout my dotfiles here: dotfiles.omerxx.com Let me know if you don’t find what you’re looking for!
@@devopstoolbox Hey rock star. I found a little more info. I needed to install the font that had U1F534 in it. Then the dot shows up. In windows or linux it will always be the set foreground colour and will on linux have lines through it. Android and Macs will show it as a big red circle. Even as a greed dot.... it totally serves the purpose. Thanks for the great vids and I will look forward to many more!
Hi! While I’m not coding in C I don’t think it would be any different. Only instead of using the last bit here that’s basically a go-delve server, you’d use a C debugger!
I like neovim but i prefer classical gui based ide's, because i had always the expierience that vim/neovim is a neverending story for me. I'm to impatient for it, to come to a point where i'm very happy with it.
I get it. But you’ve got lazy nvChad and the likes or simply kickstarter.nvim And, if at the end of the day you don’t want to configure anything, checkout Helix!
@@devopstoolbox i tried nvChad and it's not as userfriendly as any other modern gui based ide or texteditor. First you have to know which key is the leader key in the base dir. Then you must know how to change the working dir in nvimtree. All things you have to look up. These are all things that you get for free in an modern editor, because you can use a mouse pointer and context menü's. I dislike neovim and will stay at jetbrains products, because they work out of the box fine!
I always wanted to have some fzf CMd searching and triggering ability. Vim built-in `:` can only strictly match what user is typing and can only use arrow keys or tab to switch cmds
You can achieve that with telescope for pretty much anything. What would you like to have it for ? Literally commands you type? As in the command history like you have in your terminal?
@@devopstoolbox LintaoAmons/easy-commands.nvim I want to have VSCODE/IDEA like command fzf search and trigger function~ Right now I am using fzf-lua to achieve this
ua-cam.com/video/aeQn9MRTjxc/v-deo.html This is a video of what I got, the config is in my dotfiles repo (omerxx/dotfiles) and a video is coming up soon enough :)
I find vscode debugger for my django apps really slow (startup and repl dev cycle takes a ~minute) But my golang debugger in code is pretty fast. Maybe neovim based debugger will fix my django debugging experience. I subscribed, thanks!
I don't remember seeing that... but yeah it can get clunky. It's usually my go to but I'm wondering whether its clunkiness is what's stopping others from taking it on
I would very much like to know if there's a way to set up run configurations in the DAP, like PyCharm has, so that I can define a custom command, with custom environment variables and other settings, and then debug using the normal DAP process. That's the only feature left that I have in PyCharm but not Neovim.
@@devopstoolbox I'm trying to have a config file, similar to launch.json in VSCode or the run configs in PyCharm that contains all the environment variables, command and parameters, etc that I need to run my code (the one I'm working on now is an AWS lambda so it is more complicated than just running the python file) and then once it runs that code I need to be able to step though it with my existing breakpoints.
I have gotten as far as learning how to get the local sam container running entirely from the command line, and set up with a debug port open, but I'm not sure how to get nvim-dap to attach to that port and communicating with the aws lambda function within so I can debug using neovim.
Thanks for the cool video. I didn't see anything mentioning about that you have to have dlv installed as prerequisite if anybody wonders why it's not working on his/her machine.
If I missed that you’re absolutely right. And while we’re at it it’s important to add that you’d have to use the debug server that matches the language you’re working with
what if i want to use DAP for java do i need a JAVA adapeter for DAP, like wise javascript adapter for JAVASCRIPT? C adapter for DAP in case of C/C++ language ? Any ways this is the unique video i am looking for.. thankyou
Hi! Yes, exactly, here's a list of available adapters: microsoft.github.io/debug-adapter-protocol/implementors/adapters/ And specifically for Java: github.com/Microsoft/vscode-java-debug
Nice! Let me know how it goes! TBH most of my work these days is purely Go, but Python should work exactly the same only with another debugger backend. You should be able to use the UI and DAP exactly the same
@@devopstoolbox 🙃 i would argue it's just a text editor without plugins... so i use it with -U=NONE flag in my scripts, like as a pager for manpages because it has nothing for a ide without plugins... compared vscode (yes, an ide), which has lot of stuff build in like a git integration and project management and complete intelinse for javascript without any plugin
@@vaisakh_km let me put it like that: you’re right. And the main reason I use vim is not because of its IDE capabilities that I can easily get with a bunch of plugins, but for its text editing features! So you’re point is made, but I take productivity of writing as the top priority and the rest comes next. Since I get everything - lsp, git, debugger etc (yea with plugins) where I can customize and play with the env, it’s a no brained for me
@@devopstoolbox yes yes... XD... - it's a text editor for those don't know about plugins... - it's a IDE for those nvim distribution users who doesn't customize anything... - it's a PDE for those who configure more than actually code (which is me XD)
Agree to disagree? 😅 Jokes aside, it doesn't really matter how you put it. I write code, debug, and go through the entire lifecycle of creating an app (including git ops and others) using Neovim. It is, my development environment...
@@devopstoolbox haha you made a comment in one of your git videos about climbing and then someone below mentioned your forearms. I also climb too. Anyway I appreciate your content!
switching to Neovim was one of the best decisions i made and i mostly work in web dev and a little python and rust for my side projects.
Vscode could be regarded as the best experience especially if you are working in web dev but what most people forget is that installing 10 plugins to provide info and utilities is only going to help not make you a better programmer and most of the essential plugins are already available in neovim.
For me atleast neovim provided a much much better experience and feels way more like an IDE after setting it up rather than VScode's impersonation of an IDE and switching actually made it more clear how much of a memory hog VScode is.(aka i can run 2 environments due to FullStack development and my laptop does not die completely on running).
Anyone that is still in doubt take some time to learn neovim and using terminals like kitty or tmux in tandem and i promise it will be a far better experience.
This is a wholesome comment 🫶
Bro taking the opportunity to flex his forearms
😂
I have to get rid of them. They’re too big
Thanks for taking the feedback and explaining a setup for a language other than TypeScript! Great video!
You've got the best thumbnails in all of vimspace!
Haha thanks! I’m trying 😅
Used this as a basis for setting up with C++. Thanks very much! Great video.
🙏🏽
Really great content. Thanks a lot for this one. It was really useful for me to see the setup of debugger in Neovim. I have used Neovim for more than 1 year now but with no debugger at all. Now I'll try these plugins that you mentioned since I am using go as well 😃
Yes!! Let me know how it goes!
Love your videos about vim and other terminal staff ! Thanks.
Thank you!! Was waiting for this one for a while! Great surprise for today and will try this during the weekend :)
Yes! Let me know how it goes!!
As always another amazing content. Thank you for sharing your knowledge
Really nice video, what's the name of the plugin that autocompletes commands that you used for PackerSync ?
I’ve moved from Packer to Lazy since:) but vim should be aware of exposed methods for different plugins. Is that not something you get trying to run tab completions?
Nice vid. Using dap as well. I used intellij ide with the same results. I was wondering if you could see value of a parameter in a pop-up when you are on the variable. That is sometimes handy when dealing with arrays
Hmmm 🤔 definitely interesting !
Sounds like this would require some lua and can be VERY helpful. At the end of the day , the UI is a bunch of buffers, that you can open wherever you choose, I don’t see a reason why you couldn’t.
BTW, you could switch you main screen the variable console buffer for quick investigation and then scroll it back
Incredible video, amazing quality. Thanks!
Thanks buddy! 🙏🏽
Hey, don't you find it interesting that the output of a program goes to a REPL element, not console? The most annoying part with REPL is that it does not auto-scroll the output.
Yep, I do. TBH this system isn't perfect, and while you can master the REPL console, I don't think it's there yet... Hopefully the UX will improve soon so we can cover a better version of debugging in Neovim!
Awesome video content!
I loved your NeoVim background with that texture and transparency!
Can you explain how you achieve that effect?
Thanks! TBH this used to be my setup with Wezterm transparency, but this is just a visual editing effect 😅
@@devopstoolbox cool! 😄
Great video! How are you highlighting the line that you are currently breaked on?
Hey! Thanks!
So break line is just a feature of DAP, which you can match to whatever you want as a key map, and the sign is also controlable (in my case - a big red dot), the line is auto marked by DAP when you're in a debug session. I didn't make any special changes there but you're more than welcome to check my dotfiles: dotfiles.omerxx.com
how can i inspect memory in c? like the stack, heap and registers?
I’m guessing your going to need a similar profiler built for C
When I set the keymap for the debugger I have an error saying that telescope can’t be found. I’ve verified and telescope is not using any of the keymaps I use for the debugger. Any keymap gives me the error. Do you have an idea on what’s happening?
Hard for me to say TBH. Try following my dotfiles, although these have changed quite a lot since.
@@devopstoolbox thanks so much for your reply. I’m using lazyVim and on their website they have the setup for DAP. It works fine now
Is DapUiToggle command removed from the nvim-dap plugin? I am not seeing it after plugin install.
hey did you figure this out? can't for the life of me get this working with python
@@bridgey2012 I hope this helps you - vim.keymap.set("n", "du", "lua require'dapui'.toggle()", { desc = "Dap UI Toggle" })
@@bridgey2012 I hope this helps you -
vim.keymap.set("n", "du", "lua require'dapui'.toggle()", { desc = "Dap UI Toggle" })
Hey love your vids. They are really making me excited about code and neovim! A couple of questions. How did you get the Red Dot in your config file? Sorry if this is easy and I dont know it. Also, how did you get Telescope and other pop ups to be so nicely styled? I am using capucino and mine does not look so vibrant. I know not substantive... but really curious how you got yours looking so cool!
Hello mate! Thanks for the kind words:)
The red breaking point is just a configuration of the plugin where I replaced the icons. Checkout my dotfiles here: dotfiles.omerxx.com
Let me know if you don’t find what you’re looking for!
@@devopstoolbox Hey rock star... I got the char to show by adding some fonts that
@@devopstoolbox Hey rock star. I found a little more info. I needed to install the font that had U1F534 in it. Then the dot shows up. In windows or linux it will always be the set foreground colour and will on linux have lines through it. Android and Macs will show it as a big red circle. Even as a greed dot.... it totally serves the purpose. Thanks for the great vids and I will look forward to many more!
Yeah. That was John Carmack in the same interview he shat all over vim as an editor.
Yep :) that was why I got it! I love the irony!
And I think the description is a little extreme, and explained why he preferred other editors…
I tried using it on my M2 Mac Air and can't debug go, but python does, I don't know if DLV is not compatible with Arm's macOS
Interesting. Is there an m2 specific release? I used an m1 and went ok. To be sure maybe build from source?
Please post a video about setting up DAP with C language
Hi! While I’m not coding in C I don’t think it would be any different. Only instead of using the last bit here that’s basically a go-delve server, you’d use a C debugger!
I have done it by reading nvim-dap docs. Anyway thanks for your immediate response
@@rv-ragul 🤩
Hey, thanks for an amazing video!
I like neovim but i prefer classical gui based ide's, because i had always the expierience that vim/neovim is a neverending story for me. I'm to impatient for it, to come to a point where i'm very happy with it.
I get it. But you’ve got lazy nvChad and the likes or simply kickstarter.nvim
And, if at the end of the day you don’t want to configure anything, checkout Helix!
@@devopstoolbox does one of them support dotnet?
@@devopstoolbox i tried nvChad and it's not as userfriendly as any other modern gui based ide or texteditor. First you have to know which key is the leader key in the base dir. Then you must know how to change the working dir in nvimtree. All things you have to look up. These are all things that you get for free in an modern editor, because you can use a mouse pointer and context menü's. I dislike neovim and will stay at jetbrains products, because they work out of the box fine!
I always wanted to have some fzf CMd searching and triggering ability. Vim built-in `:` can only strictly match what user is typing and can only use arrow keys or tab to switch cmds
You can achieve that with telescope for pretty much anything. What would you like to have it for ? Literally commands you type? As in the command history like you have in your terminal?
@@devopstoolbox LintaoAmons/easy-commands.nvim
I want to have VSCODE/IDEA like command fzf search and trigger function~ Right now I am using fzf-lua to achieve this
Please do you have a video of your config? Looks so cool.
ua-cam.com/video/aeQn9MRTjxc/v-deo.html
This is a video of what I got, the config is in my dotfiles repo (omerxx/dotfiles) and a video is coming up soon enough :)
I find vscode debugger for my django apps really slow (startup and repl dev cycle takes a ~minute)
But my golang debugger in code is pretty fast.
Maybe neovim based debugger will fix my django debugging experience.
I subscribed, thanks!
Thank you! I feel like it’s more about the debugger server rather than vscode but do let me know what you find!
nvim-dap-ui is bugged. for instance lua output's goes into REPL pane instead of console pane.
I don't remember seeing that... but yeah it can get clunky. It's usually my go to but I'm wondering whether its clunkiness is what's stopping others from taking it on
I would very much like to know if there's a way to set up run configurations in the DAP, like PyCharm has, so that I can define a custom command, with custom environment variables and other settings, and then debug using the normal DAP process. That's the only feature left that I have in PyCharm but not Neovim.
Trying to follow: are you referring to changing code *while* debugging or something else?
@@devopstoolbox I'm trying to have a config file, similar to launch.json in VSCode or the run configs in PyCharm that contains all the environment variables, command and parameters, etc that I need to run my code (the one I'm working on now is an AWS lambda so it is more complicated than just running the python file) and then once it runs that code I need to be able to step though it with my existing breakpoints.
I have gotten as far as learning how to get the local sam container running entirely from the command line, and set up with a debug port open, but I'm not sure how to get nvim-dap to attach to that port and communicating with the aws lambda function within so I can debug using neovim.
Thanks for the cool video. I didn't see anything mentioning about that you have to have dlv installed as prerequisite if anybody wonders why it's not working on his/her machine.
If I missed that you’re absolutely right. And while we’re at it it’s important to add that you’d have to use the debug server that matches the language you’re working with
Niiiice !! Finally someone talking about this in a detailed way.
what if i want to use DAP for java do i need a JAVA adapeter for DAP, like wise javascript adapter for JAVASCRIPT? C adapter for DAP in case of C/C++ language ?
Any ways this is the unique video i am looking for.. thankyou
Hi! Yes, exactly, here's a list of available adapters: microsoft.github.io/debug-adapter-protocol/implementors/adapters/
And specifically for Java: github.com/Microsoft/vscode-java-debug
Amazing! Very helpful
😉
Great content man!
Amazig video! I'm using golang all the time so this works perfect! I was wondering if you have something similar for python
Nice! Let me know how it goes!
TBH most of my work these days is purely Go, but Python should work exactly the same only with another debugger backend. You should be able to use the UI and DAP exactly the same
5:51
Is working for you?
Neovim is PDE.. not IDE
Yes, I agree. However referring to it as “just a text editor” isn’t doing justice IMO
@@devopstoolbox 🙃 i would argue it's just a text editor without plugins... so i use it with -U=NONE flag in my scripts, like as a pager for manpages
because it has nothing for a ide without plugins... compared vscode (yes, an ide), which has lot of stuff build in like a git integration and project management and complete intelinse for javascript without any plugin
@@vaisakh_km let me put it like that: you’re right. And the main reason I use vim is not because of its IDE capabilities that I can easily get with a bunch of plugins, but for its text editing features! So you’re point is made, but I take productivity of writing as the top priority and the rest comes next. Since I get everything - lsp, git, debugger etc (yea with plugins) where I can customize and play with the env, it’s a no brained for me
@@devopstoolbox yes yes... XD...
- it's a text editor for those don't know about plugins...
- it's a IDE for those nvim distribution users who doesn't customize anything...
- it's a PDE for those who configure more than actually code (which is me XD)
NeoVim is not an IDE in the same way VsCode is not an IDE
Agree to disagree? 😅
Jokes aside, it doesn't really matter how you put it. I write code, debug, and go through the entire lifecycle of creating an app (including git ops and others) using Neovim. It is, my development environment...
Odd starting off with John Carmack who uses jetbrains in a vim video
Like a good dev, I cherry picked 🤣
What’s odd is a comment that assumes a non-vim user (John Carmack) couldn’t possibly say something relevant for vim users.
@@cpplain 😅
Are you also a climber?
I am :)
What gave it away?
@@devopstoolbox haha you made a comment in one of your git videos about climbing and then someone below mentioned your forearms. I also climb too. Anyway I appreciate your content!
@@_fellow_ Haha hilarious, I thought it was the one thing I managed to hide 😂
Every programmer deserves a better debugger.
Use an IDE and get rid of this suffering 🤮
Neovim IS an IDE 😉