LSP in Neovim. Thanks to BILL GATES?! | FREE COURSE // EP 3
ฝัง
- เผยแพร่เมื่อ 2 มิ.ย. 2024
- X: / typecraft_dev
Welcome back to neovim for newbs!! In this episode we are FINALLY configuring neovim to use LSPs for amazing modern language server functionality. VScode, and other editors/IDEs handle some of the LSP functionality out of the box, but for neovim we have to do a little work to get things working correctly.
In this video I'll cover step-by-step how to configure neovim to be an IDE by using LSP. its going to be a fun ride!!
chapters:
0:00 - intro
0:48 - overview of our current config
1:39 - what is LSP??
3:38 - installing mason
5:35 - installing mason-lsp-config
7:19 - installing nvim-lsp-config
9:15 - LSP is connected! set some keymaps
12:30 - telescope ui for quick actions
14:25 - install tsserver and show it off
16:47 - wrapping it up! - วิทยาศาสตร์และเทคโนโลยี
I've been curious about vim for quite some time but never taken the plunge to try and get into it due to the intimidating setup. This gem of a series makes it look achievable even for me. Thanks nerd =)
Thank YOU nerd!
While configuring my vim, I'm constantly referring to these videos, lacking of understanding what I'm doing copy-pasting other people's dotfiles settings 😂, but after a while I know for sure, I'm tired of remembering deez keymaps.
I'm none native English speaker, so I wish there'd be more people who can speak like you do. I can understand literally everything you are saying. Watching your videos is like reading a well done article. By the end of every video you've done, I become more advanced, so I can handle those plugins, and settings on my own.
That’s great to hear thanks I’m glad these videos help!!
Hey, I'm a Neovim newbie living in South Korea. Your free course on Neovim is so helpful to me. I've already watched Primeagen, Devries, and Martinez, and their explanations were good, but you have a good pronunciation and proper speed, which makes it easier for a foreign beginner who isn't good at English to understand. So I really appreciate your video.
Where has this guy been?
Someone give to this man a best teaching award! This is incredible.
This is the best guide I have seen so far, can't wait for the next one. Thanks and congratulations!
Thank you!
I hate to admit it, but I was wrong when I thought I'll understand nvim via the docs :D Your Videos just made my life 10x easier, thanks!
YOU ABSOLUTELY ROCK! I tried dozens of times to get neovim to a point where it could replace VSCode and actually work. Thanks to your videos I finally got it! Plus I understand what each .lua file does and how I can extend it to my liking. Sir you are a blessing and you earned my sub. Keep up the good work
I love that not only show how to configure the plugins, but also take the time to explain to us how they work under the hood
I sure hope this is going to be a 50 part series; they are very well done! Keep em coming.
Really enjoy this course. This may be the first video that I've seen explains the "how" and "why" instead of only the "what" part of configurations. Looking forward to the following episodes!
this series is so good. you actually take the time to go through it all and I appreciate that. this is the best video I've watched on neovim setup and I've watched too many.... you are giving me a way out of my fragile incomplete setups. thank you
just known you channel and seen the whole series of neovim config free course…awesome! you know things, and you know how to teach them! congratulations!
Extremely impressed with the series so far. This is THE BEST neovim tutorial I've ever gone through, by a huge margin. You explain things so clearly and actually give us the background details on why you're doing things certain ways (like how the lua behaviours influence how we set up the project structure). So many other tutorials gloss over a bunch of stuff they assume you already know.
I also think your strategy of setting something up once 'quick and dirty', and then going back to it to 'improve' it is super helpful because it follows the flow you would naturally go through learning all this stuff.
Fantastic series ❤ Followed and subscribed instantly. Definitely bring this one to completion, it’s so worth it!
normally don't comment on youtube videos, but this series is something special! paced brilliantly well, covers everything in great detail, and actually walks the viewer through the process one step at a time instead of throwing tons of info all at once. you, my friend have earnt my subscription :D
This is it. I've tried ricing my vim experience so many times, and that many times I've failed, because all that I was doing was following a guy spitting commands to install nvchad or something alike.
You were the first TH-camr that took the time to explain, step by step, everything that you've done to achieve a beautiful setup. I'm at a loss for words to thank you for the journey you've provided so far
Thank you very much :)
I’m glad it’s helping you thanks!!
I’ve been messing around with my nvim lsp confs for years - TIL how lsp does what it does. Amazing video. Keep them coming!
That's amazing ! One of the best explanations about setting up neovim for an REAL IDE ! Thank you !!! Looking forward on the new videos ! I almost forgot : Merry Christmas !
Yesterday just started following you other episodes, and here the 3 one! Thank you!
I had watched your previous series / playlist on neovim and am super excited to see you putting out this new set of "courses" - they are great!
One quick note: maybe talk in your videos about how you trigger the auto-indenting and such - I had to stare really hard at the thing showing what keys you pressed to figure out that hitting = is what made things line up :)
Ah good call. I’ll try that for next time
don't know if it helps, but what im doing is :
--function to create commands
local function map(mode, lhs, rhs, opts)
local options = { noremap = true, silent = true }
if opts then
options = vim.tbl_extend('force', options, opts)
end
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
end
-- you can do a nice "leader+f" to ident the hole file ( :
map("n", "f", ":execute 'normal gg=G' | normal!``")
-- made a version without the function :
vim.api.nvim_set_keymap('n', 'f', [[:execute 'normal gg=G' | normal!``]], { noremap = true, silent = true })
@geneliverman6827
Hey, I'm still following your series and learning a lot from it. Congrats on the series, the quality is beyond good!
Thank you!
Can't wait for the next EP! I'm excited too see how was your approach to solve the null-ls problem. I've remade almost my entire nvim config based on some tips you showed in these couple videos, its wayyy easier to manage plugins and configs now. Thanks, nerd!
Thank YOU nerd!
I'm hooked with this neovim series! looking forward to the next episode! Great Work!
Hey nerds! Thanks for watching.
Here is the github repo: github.com/cpow/cpow-dotfiles
thanks!
Thank you so much. I have all these crazy vscode bindings to mimic but every time I try to move to neovim I give up. I don’t even use all the vscode features so I’m not losing a lot but every other neovim thing gets into too many.
This link is dead :(
Hey. I am already a nvim user and have a config running already but I'm just not happy with that right now since I am graduating this week and starting a job that needs me to do rust, so I just wanted to rewrite my config. I see you are using null-ls. What are your thoughts on the repo being archive. Are there any reasons you are still doing that given the repo got archived in Aug and you did the playlist in Dec.
I have followed a few tutorials on how to set up neovim. They did the job, but I didn't really learn why I did what I did until I saw your series. Great explaining. 👍🏻
Well, thank you so much for your channel and your time making this. I'm working with vim over 20 years, but looking into your neovim videos, well now I am working with nvim, you have given me a very good start point... Changing one by one every of my vimrc plugins into lua, lazy packages. Thank you so much!
Awesome!!
Thanks a lot for this series. After a year or two of using the Vim motion plugin in VSCode (can't code without it now...) I decided to do the jump. It's very useful to have a guide that explains the basis at setting up plugins and what the important or common plugins are. I did some of my own experimenting for code completion but looking forward for the next episode to see how you do it. Thanks again, keep it up.
Thank you for this series. It really helps to solidify the knowledge and be able to troubleshoot things if necessary. I used to have nvchad added and it worked great but as soon as something wend bad, I couldn't do much about it. Now I know how things work and how to fix stuff. Thanks!
I have been eagerly waiting for this episode … it’s like waiting for Mandolorian episode every week .. Thank you
the most straight forward set up! you are the best!
Special thanks for adding key highlights at the bottom right corner of the screen! Keep up the excellent momentum.
The best channel for neovim learning in action🙇♀
Bless this series. Merry Christmas or Happy Holidays to you!
Thank you and happy holidays / merry Christmas to you as well!!
Incredible job, keep it up. This is exactly what I was looking for in a series
This series is exactly what I was looking for! I have tried starting scratch configurations (which I prefer so I know how everything works as I build it) but struggled with not quite getting how each part of the lsp and treesitter setup come together. I've also used kickstarter nvim as a starting point and tried to use it and trim it down to what I like, but I'm not a fan of how they have their plugins and configs split up everywhere. The other problem is that even though lsp and treesitter work out of the box with these pre-packaged configs its hard to figure out what options there are and how they really work because they're just pre-made for you. Many of the tutorials are still showing the Packer manager (which I understand was pretty universal until recently) but I like that you are showing Lazy, and I LOVE that you are showing how to use the config=function() way of keeping your configs and installs in one file. This is something that took me way too long to find and figure out on my own because no one was really explaining how to do it. The documentation for Lazy is really good, but it took me some reading to really decipher the difference between init, cmd, and config. It just makes so much more sense to have your install params, config, plugin keybindings in one file, if you want to change plugins just remove one file and create another. Your series has been perfect at explaining how each piece works as we go so we can truly understand our setups so shout out for all the hard work and keep it up! Cant wait to learn more.
cant wait for the next episode men, i need that autocomplition and text sugestion. Thanks for the great work man
Thank you soo much, these guides are actually what is giving me the nerves to start using nvim or at least learn about it.
wow wonderful series , fantastic work man
I found configuring neovim absolutely overwhelming because the huge amount of stuff that you must do in order to have it working in a good way. Some tutorials just approach this by "just install lazyvim, lunarvim, nvchad" and let's customize on top of that, but the cognitive load, or learning curve, is TOO high.
Your videos are really well paced, it covers what are you installing, meaning that I know what I'm installing and WHY I'm installing that. No only, but also a quick "how to use" what we just installed.
It definitely make the videos longer, it required from you a series, but I'm pretty much loving it as I'm not only learning how to "properly" (I know, it's very personal how you configure your vim, for your tastes, and you not being you you, but generally speaking you) but also enjoying doing so and really learning what single piece of code/customization does.
I know this is something I should be researching myself, but it's really hard to research something that you don't even know it exists, so even with very basic coverage it opens a huge possibility of learning on top of that.
And for that, I'm really appreciated, it's a really amazing series.
What a great series....very much hype for the next part :3
I’ve been on vscode the past week desperately waiting for this
This is gold. Pure gold. I'm learning, and thanks.
You're the only person who explains it clearly enough for to understand this, thank you for this great series!
Glad you liked it!!
Best tutorial ive seen for lsp, im a beginner this was very helpful.
I am a simple man. I see your video of neovim I click. Plus it will be great is you enable suggestions in your next episode. Great work man. Great series. ❤
I can't say how much happy I am after understanding this. thank you sir.
bro saved my life. ive spent 5 hours for this to work after watching your last episode
The best lsp video exist in youtube ❤ thenx i cant wait for the next video
Awesome series! Thank you, can't wait for the next one
Beautiful and clear. I know lsp now, thanks to you! And kind of began to understand how this works. Very grateful! I dram to be better user of nvim, it comes true. Thank you!
Amazing! I knew about Mason , but i didn't know about ls-cofing and how to do it, Thank you so much!!
Dude. Great series. Congrats on the great work.
Thank you!
really well put together, it’s hard to get used to vim without the config, much less with getting in the way, thx for making it simpler
It's true, getting comfortable with Vim or Neovim, especially with a custom setup, can be a steep learning curve. But once you're over the initial hump, it becomes a lot more intuitive. Remember, it's all about making the tool work for you, not the other way around.
Hell Yeah! Was waiting for this episode
Hell yeah!
Thank you. Without you and Chris I would never be able to use nvim. It's very hard for a newbie
Just want to say, what an amazing series you have put together so far. So easy to follow, you’re covering all the key points and also showing us how to do it step by step. At this point I’m just checking everyday to see if your next video is out. Thanks a lot 🫡
Love it thanks!!
Very, very cool! Thank you for making this video. Really is helping me out
I'm excited to watch this! I liked eps 1 and 2. Quick tip as a new subscriber: it was actually kind of hard to find this episode haha. I don't know if this is possible, but adding links/cards at the end of previous videos to the next episode in the series (if you have control over that) might get you more views. I don't know. Thought I'd share ... because I care 🥺. (Also your videos are awesome, thanks for these!)
Amazing !! Couldn't wait for this one ^^
I'm moving from LazyVim to this setup, it feels so powerful to understand every single line of the configuration, and also what every plugin does. Thanks a lot for making this series!
By the way, what keyboard and switches are you typing on? Sounds like silent switches, I like it!
Happy you like the series!! I’m typing on a happy hacking keyboard with silent switches you’re right!
Man I've wasted a day installing Neovim and Nvchad because I don't know anything about neovim and after that this series has started and I am also thinking to move from nvchad to this, I think I should go back to this setup because I am using nvchad knowing nothing I mean I have no idea WTF is mason,treesitter and all but I am using it. I think it is very helpful to know things. anyways thanks for making this awesome series. It is best one right now.
Thank you very much for the great videos, I am understanding how to configure Neovim for first time, really you explain the things with much detail and easy to understand for a new person in the vim world.
Amazing !!! Excited for this one ^^
Thanks for these videos, very informative. They made me realize just how cool Neovim actually is.
A very nice and underrated addition to this video was the display of the keystrokes at the bottom-right.
Wonderful videos as always!
I literally can't wait for the next one!!!
waiting for the next episode so excited !!
It took me a whole day to configure the first three videos. I did take some time as this is the first time I'm using NeoVim. Again, great job as this is the ONLY series where I can understand and the steps work unlike other videos where they start with a distro.
Looking forward to next video and I would appreciate if you can do Python LSP using the same plugin architecture. Thanks.
You got it!
Yas! Another amazing video is here 🔥
Thanks for the amazing content, I must say that I wanted to learn vim and I used distos but I felt overwhelmed by all the configuration this distros had. Regards from Méxicoi
gracias!
All I can say is, you're awesome! Thanks for the awesome content.
You're vides are just amazing
Thank you!
been wait for this, W typecraft💯
I did not even realize you were displaying the keys pressed;
Suggestion place them above your portrait and slightly bigger.
I come back to this series 5 times now each time i want to understand where things are and why things are where they are.
Thank you!
Kind of learning lua syntax too lol...
Currently have lazy vim config setup although i am not using nvim too much but honestly i think i would follow this series and take my swert time setting up myself. I am glad TH-cam fecommen this to me. Definitely need to check out the previous videos
noice - added astro support and highlighting all by myself after that cheers!
you are the best teacher on neovim
holy shit man I love you thanks for these guides
awesome series of neovim IDE setup so far, watching every seconds!!! kudos I have learned so much of internal working. Thanks Christopher! and thanks to #Microsoft for LSP support ;)
Thanks Nerds hits different everytime ❤
Thanks a lot for your work! Really the best tutorial series about vim config!
As debugging is important in coding, I'd like to ask if you are planning on making episode about nvim-dap and dap-ui? Or maybe about some other debugging tools?
I am!! I’m not a big debugger user throughout my career but I’ll touch on those
How awesome this episode is! :)
Man you are providing really rich content, keep it up
Thank you!
Thanks this was really helpful to follow along!
I already have a neovim configuration I enjoy using, but I still like watching your videos
Your course is the best. Thanks
BROOOO I didn't finish the series yet but thank you for the works !!!
I’m here for it!
Awesome episode as always !
I was wondering what is the software you used to display all keys you pressed ? At the bottom-right corner
Keystroke pro. Pretty solid
This is so great, helps me to understand a lot of the ways nvim works and how to change behavior. Do you have any plans on when to setup keymap helper tools, like which-key? :)
I think that’s a great idea
you really demystified that for me. I've been copy and pasting that black magic text and hoping it would do what I want for months...I actually kind of understand it now. thanks.
Happy to hear!
Best Intro ever made🚀
Thanks a ton, great series.
Hey, thank you very much for this video series, it helps a lot. I still had to install the typescript language server, otherwise nvim won't install the tsserver.
This is so good! Thanks TC!
Haha TC. I love it
Thank you, for sharing your time and expertise.
Currently I'm struggling with temporary zooming in/out one of the windows inside a tab - (meaning maximize one window to do some edit/review stuff with its content and then go back to the tab layout without messing that tab layout).
Maybe I'm mistaken but I'm looking for a way to maximize the buffer in a fullscreen floating window with full fledged buffer edit/etc functionality?
Could you point to any direction in order to accomplish that?
Best regards,
...
Très très bien expliqué, merci!
I didn't understand what was going on in my config until you.. thanks a lot
f
Would you consider making a vid about taking notes / creating todo lists within neovim (e.g., using vimwiki w/ markdown, or however you would go about it)?
Great video series, super helpful :)
thank you..learned new things. keep it up sir
really fantastic. much love
❤️
You're amazing buddy!