LSP in Neovim. Thanks to BILL GATES?! | FREE COURSE // EP 3

Sdílet
Vložit
  • čas přidán 22. 05. 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!
  • Věda a technologie

Komentáře • 288

  • @Parzec
    @Parzec Před 5 měsíci +60

    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 =)

    • @typecraft_dev
      @typecraft_dev  Před 5 měsíci +6

      Thank YOU nerd!

    • @Solsenderz
      @Solsenderz Před 4 měsíci

      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.

  • @guilhermetsk
    @guilhermetsk Před 5 měsíci +55

    This is the best guide I have seen so far, can't wait for the next one. Thanks and congratulations!

  • @Solsenderz
    @Solsenderz Před 5 měsíci +48

    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.

    • @typecraft_dev
      @typecraft_dev  Před 5 měsíci +8

      That’s great to hear thanks I’m glad these videos help!!

  • @fschlegelone
    @fschlegelone Před měsícem +3

    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!

  • @juan_chan
    @juan_chan Před 5 měsíci +10

    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

  • @williamweatherall8333
    @williamweatherall8333 Před 2 měsíci +2

    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

  • @caedanl
    @caedanl Před 4 měsíci +6

    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.

  • @Keith_Zhu
    @Keith_Zhu Před 4 měsíci

    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!

  • @ChrisNoesen
    @ChrisNoesen Před 5 měsíci +7

    I sure hope this is going to be a 50 part series; they are very well done! Keep em coming.

  • @abirbhavgoswami
    @abirbhavgoswami Před 2 měsíci +1

    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

  • @simonemedori
    @simonemedori Před 3 měsíci

    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!

  • @jos-fn-chris
    @jos-fn-chris Před 5 měsíci +4

    I’ve been messing around with my nvim lsp confs for years - TIL how lsp does what it does. Amazing video. Keep them coming!

  • @3luizcunha
    @3luizcunha Před 5 měsíci +13

    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 CZcamsr 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 :)

  • @geneliverman6827
    @geneliverman6827 Před 5 měsíci +3

    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!

    • @geneliverman6827
      @geneliverman6827 Před 5 měsíci +2

      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 :)

    • @typecraft_dev
      @typecraft_dev  Před 5 měsíci +1

      Ah good call. I’ll try that for next time

    • @harinho6117
      @harinho6117 Před 5 měsíci

      ​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 ​

  • @tudorliviu6405
    @tudorliviu6405 Před 4 měsíci

    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 !

  • @phlynniii
    @phlynniii Před 5 měsíci +2

    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!

  • @matteostara
    @matteostara Před 5 měsíci +6

    Fantastic series ❤ Followed and subscribed instantly. Definitely bring this one to completion, it’s so worth it!

  • @raphaeloliveira01
    @raphaeloliveira01 Před 4 měsíci +1

    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!

  • @reandov
    @reandov Před 5 měsíci +4

    Hey, I'm still following your series and learning a lot from it. Congrats on the series, the quality is beyond good!

  • @ChristianEriksson83
    @ChristianEriksson83 Před 3 měsíci

    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. 👍🏻

  • @davejfranco
    @davejfranco Před 5 měsíci

    I'm hooked with this neovim series! looking forward to the next episode! Great Work!

  • @akatheduelist
    @akatheduelist Před 5 měsíci +1

    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.

  • @benoitrousseau4137
    @benoitrousseau4137 Před 5 měsíci

    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.

  • @kymaka
    @kymaka Před 5 měsíci +1

    Yesterday just started following you other episodes, and here the 3 one! Thank you!

  • @harrynair1811
    @harrynair1811 Před 5 měsíci +2

    I have been eagerly waiting for this episode … it’s like waiting for Mandolorian episode every week .. Thank you

  • @jakubfuczek
    @jakubfuczek Před 5 měsíci

    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!

  • @ffedchik
    @ffedchik Před 5 měsíci

    Special thanks for adding key highlights at the bottom right corner of the screen! Keep up the excellent momentum.

  • @tjdgmlchl6305
    @tjdgmlchl6305 Před 5 měsíci +1

    Bless this series. Merry Christmas or Happy Holidays to you!

    • @typecraft_dev
      @typecraft_dev  Před 5 měsíci

      Thank you and happy holidays / merry Christmas to you as well!!

  • @anderaldabaldetreku5161
    @anderaldabaldetreku5161 Před 5 měsíci +1

    cant wait for the next episode men, i need that autocomplition and text sugestion. Thanks for the great work man

  • @littlecurrybread
    @littlecurrybread Před 3 měsíci

    the most straight forward set up! you are the best!

  • @orioncallaghan2659
    @orioncallaghan2659 Před 2 měsíci

    Incredible job, keep it up. This is exactly what I was looking for in a series

  • @need4eat
    @need4eat Před 5 měsíci +3

    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 🫡

  • @swastikpatel234
    @swastikpatel234 Před 5 měsíci +1

    wow wonderful series , fantastic work man

  • @lukehrqc
    @lukehrqc Před 5 měsíci

    Thank you soo much, these guides are actually what is giving me the nerves to start using nvim or at least learn about it.

  • @alivaliev5152
    @alivaliev5152 Před 4 měsíci +1

    You're the only person who explains it clearly enough for to understand this, thank you for this great series!

  • @simzooo
    @simzooo Před 5 měsíci

    bro saved my life. ive spent 5 hours for this to work after watching your last episode

  • @sagar-tt4ub
    @sagar-tt4ub Před 4 měsíci

    A very nice and underrated addition to this video was the display of the keystrokes at the bottom-right.
    Wonderful videos as always!

  • @areeburrehmankhan1166
    @areeburrehmankhan1166 Před 5 měsíci

    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. ❤

  • @erikslorenz
    @erikslorenz Před 5 měsíci +2

    I’ve been on vscode the past week desperately waiting for this

  • @jizhang2407
    @jizhang2407 Před 5 měsíci +1

    This is gold. Pure gold. I'm learning, and thanks.

  • @bambitsunami4165
    @bambitsunami4165 Před 2 měsíci

    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!)

  • @Sirikakire
    @Sirikakire Před 5 měsíci

    What a great series....very much hype for the next part :3

  • @kerou4276
    @kerou4276 Před 5 měsíci +2

    The best lsp video exist in youtube ❤ thenx i cant wait for the next video

  • @typecraft_dev
    @typecraft_dev  Před 5 měsíci +10

    Hey nerds! Thanks for watching.
    Here is the github repo: github.com/cpow/cpow-dotfiles
    thanks!

    • @erikslorenz
      @erikslorenz Před 5 měsíci

      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.

    • @Lodomo
      @Lodomo Před 2 měsíci

      This link is dead :(

    • @abbashaider7165
      @abbashaider7165 Před 24 dny

      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.

  • @MrEvilyogurt
    @MrEvilyogurt Před 5 měsíci +2

    Best tutorial ive seen for lsp, im a beginner this was very helpful.

  • @nullnull744
    @nullnull744 Před 2 měsíci

    Thank you. Without you and Chris I would never be able to use nvim. It's very hard for a newbie

  • @randomthings1553
    @randomthings1553 Před 4 měsíci

    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

    • @typecraft_dev
      @typecraft_dev  Před 4 měsíci

      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.

  • @MrPaul-vh4vh
    @MrPaul-vh4vh Před měsícem

    The best channel for neovim learning in action🙇‍♀

  • @tomasemilio
    @tomasemilio Před 4 měsíci +1

    Dude. Great series. Congrats on the great work.

  • @Raubritterr222
    @Raubritterr222 Před 5 měsíci

    Amazing! I knew about Mason , but i didn't know about ls-cofing and how to do it, Thank you so much!!

  • @neelsun
    @neelsun Před 4 měsíci

    Awesome series! Thank you, can't wait for the next one

  • @user-gy4rb7ip8k
    @user-gy4rb7ip8k Před 5 měsíci +2

    Amazing !! Couldn't wait for this one ^^

  • @aus10d
    @aus10d Před 5 měsíci +1

    Very, very cool! Thank you for making this video. Really is helping me out

  • @maxisqt
    @maxisqt Před 3 měsíci +7

    Why are you writing `config = function() require("plugin").setup() end` in so many plugins when a couple episodes ago you said that's done by default with lazy? Does it occasionally just not work or bug out or something? Is it a habit? I'm trying to understand how lazy works but I'm not sure I'm understanding correctly, I was under the impression you can simplify your code by just not writing that and it's done by default. Is it because it's in a returned table with other plugins which DO require custom config, and therefore everything in that table has to have this config line even if there's no custom config?

    • @kwstasnere9207
      @kwstasnere9207 Před 5 dny

      The require("plugin").setup() can be written on the opts field.
      The docs says : -- options for plugin. This will automatically call `require("plugin").setup(opts)`

  • @gustavomachado2558
    @gustavomachado2558 Před 5 měsíci +3

    Hell Yeah! Was waiting for this episode

  • @pablourbanohernandezvizcarra

    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.

  • @PetrenkoAndrii
    @PetrenkoAndrii Před 5 měsíci

    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!

  • @user-gy4rb7ip8k
    @user-gy4rb7ip8k Před 5 měsíci +2

    Amazing !!! Excited for this one ^^

  • @williamokano
    @williamokano Před 5 měsíci +1

    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.

  • @dimitrisdrosos245
    @dimitrisdrosos245 Před 5 měsíci +1

    I literally can't wait for the next one!!!

  • @prajganesh
    @prajganesh Před 5 měsíci +2

    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.

  • @carlirven6485
    @carlirven6485 Před 4 měsíci

    waiting for the next episode so excited !!

  • @plutack
    @plutack Před 5 měsíci +1

    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 CZcams fecommen this to me. Definitely need to check out the previous videos

  • @MoamlRH
    @MoamlRH Před 4 měsíci +1

    You're vides are just amazing

  • @krafs6537
    @krafs6537 Před 3 měsíci

    Thanks for these videos, very informative. They made me realize just how cool Neovim actually is.

  • @TheShprota
    @TheShprota Před 5 měsíci

    Yas! Another amazing video is here 🔥

  • @MatsFaugli
    @MatsFaugli Před 5 měsíci +8

    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!

    • @typecraft_dev
      @typecraft_dev  Před 5 měsíci +3

      Happy you like the series!! I’m typing on a happy hacking keyboard with silent switches you’re right!

    • @user-ql2vz5kn9q
      @user-ql2vz5kn9q Před 5 měsíci

      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.

  • @ianespinosa2685
    @ianespinosa2685 Před 5 měsíci +1

    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

  • @olamilekanadeleke6806
    @olamilekanadeleke6806 Před 5 měsíci

    been wait for this, W typecraft💯

  • @stanleyogadachinedu2736
    @stanleyogadachinedu2736 Před 2 měsíci +1

    Best Intro ever made🚀

  • @yousefmeska54
    @yousefmeska54 Před 5 měsíci +1

    Man you are providing really rich content, keep it up

  • @filippzakharov1378
    @filippzakharov1378 Před 5 měsíci +1

    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?

    • @typecraft_dev
      @typecraft_dev  Před 5 měsíci

      I am!! I’m not a big debugger user throughout my career but I’ll touch on those

  • @VinitKhandagle
    @VinitKhandagle Před 4 měsíci

    you are the best teacher on neovim

  • @user-yt3ce3wl6u
    @user-yt3ce3wl6u Před 5 měsíci +1

    Thanks Nerds hits different everytime ❤

  • @leoducrot258
    @leoducrot258 Před 4 měsíci +1

    Thanks a ton, great series.

  • @LorenzoBettini
    @LorenzoBettini Před 5 měsíci

    How awesome this episode is! :)

  • @duhaufacundo
    @duhaufacundo Před 8 hodinami

    holy shit man I love you thanks for these guides

  • @dinonuggett
    @dinonuggett Před 5 měsíci

    Thanks this was really helpful to follow along!

  • @ezra3457
    @ezra3457 Před 20 dny

    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!

  • @friendly__drone9352
    @friendly__drone9352 Před 4 měsíci +1

    This is so good! Thanks TC!

  • @Aicellycut
    @Aicellycut Před 5 měsíci

    Your course is the best. Thanks

  • @Samji3877
    @Samji3877 Před měsícem

    noice - added astro support and highlighting all by myself after that cheers!

  • @armariya
    @armariya Před 5 měsíci +1

    really fantastic. much love

  • @devloper344
    @devloper344 Před 2 měsíci

    BROOOO I didn't finish the series yet but thank you for the works !!!

  • @sumirandahal76
    @sumirandahal76 Před 3 měsíci +1

    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 ;)

  • @ingogutwin7080
    @ingogutwin7080 Před 4 měsíci

    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.

  • @Maagiicc
    @Maagiicc Před 5 měsíci

    I already have a neovim configuration I enjoy using, but I still like watching your videos

  • @zwiebec78
    @zwiebec78 Před 5 měsíci +2

    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.

  • @flowingcode8069
    @flowingcode8069 Před 5 měsíci +1

    Thank you as always!

  • @ousketro9155
    @ousketro9155 Před 5 měsíci +1

    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 :)

  • @sisasslou
    @sisasslou Před 5 měsíci

    Très très bien expliqué, merci!

  • @mulanawww2719
    @mulanawww2719 Před 5 měsíci +3

    Awesome episode as always !
    I was wondering what is the software you used to display all keys you pressed ? At the bottom-right corner

  • @_vyas_ayush
    @_vyas_ayush Před 5 měsíci

    thank you..learned new things. keep it up sir

  • @jacakira609
    @jacakira609 Před 4 měsíci

    Thanks for the great series! I was just wondering, how did you get line numbers to show?

  • @utvikler-no
    @utvikler-no Před 5 měsíci

    Thank you so much for this! 😊

  • @obeng-yeboahk.d1914
    @obeng-yeboahk.d1914 Před 23 dny

    I didn't understand what was going on in my config until you.. thanks a lot
    f

  • @sebastianalfaro1887
    @sebastianalfaro1887 Před 5 měsíci +1

    I really appreciate this

  • @swarooprajpurohit110
    @swarooprajpurohit110 Před 2 měsíci

    You're amazing buddy!

  • @user-iy9es3mq5v
    @user-iy9es3mq5v Před 5 měsíci

    Great video after your done with this series please make sure to do a demo or a video on how you use neovim for programming

  • @IainSimmons
    @IainSimmons Před 5 měsíci +1

    Great video! Is completions next? I found them to be some of the hardest to configure on my own