How to setup Neovim from Scratch - Complete Guide (Including TMUX, Lazy and LSP)

  Рет қаралды 76,046

The Rad Lectures

The Rad Lectures

Күн бұрын

My NeoVim config needed an update, so, I decided to configure it from scratch! I've documented each step for an awesome neovim setup, including installing the Lazy Nvim plugin manager, integrating TMUX, setting up our Language Servers with Lspconfig and much more.
In light of the recent archiving of null-ls, we will also explore switching to efm-langserver, a performance-optimized alternative for linting and formatting with broad language support. We will set up the LSPs, linters and formatters for Python, Lua and Typescript. Plus, we'll delve into transitioning to Lazy Nvim for a more streamlined plugin management experience.
This video tutorial is designed for both beginners as well as those already using NeoVim and looking to optimise their NeoVim configuration (see timestamps to skip ahead where needed!).
Timestamps
0:00 Introduction & Installing NeoVim
12:01 Setting up the Lazy Nvim Plugin Manager
21:24 Install a Colour Scheme
24:48 Sourcing Plugins & Configuring Lazy Nvim
31:51 Configuring NeoVim options
41:23 Nvim Tree File Explorer
44:41 Installing a Nerdfont
54:21 Custom Shortcuts
1:02:06 Telescope Fuzzy Finder
1:07:58 Comments & Indentation
1:11:08 Visual Indentation Guidance
1:12:22 Syntax Highlighting with Treesitter
1:14:22 Autotags
1:16:18 Web-Devicons
1:17:33 Illuminate Word Under Cursor
1:18:47 Highlight Yanked Text
1:20:00 Nicer Command Line, Search and Notification UI
1:22:18 Lualine Custom Statusline
1:26:27 Installing Language Servers with Mason
1:31:32 Setting up Mason Lspconfig
1:33:46 Getting Started with LspConfig with Lua (incl. Linting & Formatting)
1:37:51 Formatting on Save
1:39:59 LspSaga & Diagnostics Keymaps
1:44:30 Clean up our project Lua settings
1:46:09 Configuring LspConfig and efm for Python LSP, Linting & Formatting
1:50:33 Setting Up Auto-Completion
1:53:05 Configuring LspConfig and efm for TypeScript LSP, Linting & Formatting
1:58:02 A Closer Look at efm-langserver
2:00:53 Cleaning Up LspConfig & Adding autocmds
2:03:14 Setting Up Transparency
2:06:14 Integrating NeoVim with TMUX
2:17:28 Outro & Thank You
Links
0. My Config (for reference)
- nvim [latest]: github.com/radleylewis/nvim
- nvim [commit containing video code]: github.com/radleylewis/nvim/t...
- dotfiles (alacritty & tmux): github.com/radleylewis/dotfiles
- Linux Distro used in this video is Pop!_OS: pop.system76.com/
1. NeoVim
- neovim.io
2. Lazy Nvim
- github.com/folke/lazy.nvim
3. Colour Scheme
- nightfox: github.com/EdenEast/nightfox....
- gruvbox: github.com/ellisonleao/gruvbo...
4. Nvim Tree File Explorer
- github.com/nvim-tree/nvim-tre...
5. Nerdfonts
- www.nerdfonts.com/
6. Telescope Fuzzy Finder
- github.com/nvim-telescope/tel...
7. Comment.nvim
- github.com/numToStr/Comment.nvim
8. Indent Blankline
- github.com/lukas-reineke/inde...
9. Nvim Treesitter
- github.com/nvim-treesitter/nv...
10: Nvim ts-autotag
- github.com/windwp/nvim-ts-aut...
11. Nvim Web-Devicons
- github.com/nvim-tree/nvim-web...
12. Vim Illuminate
- github.com/RRethy/vim-illuminate
13. Vim Highlighted Yank
- github.com/machakann/vim-high...
14. Nvim Noice for Command Line and Notifiation UI
- github.com/folke/noice.nvim
15. Lualine
- github.com/nvim-lualine/luali...
16. Installing LSPs, Linters and Formatters with Mason
- github.com/williamboman/mason...
17. Mason Lspconfig
- github.com/williamboman/mason...
18. Lsp Config
- github.com/neovim/nvim-lspconfig
19. efm-langserver
- efm: github.com/mattn/efm-langserver
- configs: github.com/creativenull/efmls...
20. Better Diagnostics with LspSaga
- github.com/nvimdev/lspsaga.nvim
21. Neoconf
- github.com/folke/neoconf.nvim
22. Auto-Completion
- nvim-cmp: github.com/hrsh7th/nvim-cmp/
- luasnip: github.com/L3MON4D3/LuaSnip
- lspkind: github.com/onsails/lspkind.nvim
23. Transparent Nvim
- github.com/xiyaowong/transpar...
24. TMUX
- tmux: github.com/tmux/tmux/wiki
- tpm: github.com/tmux-plugins/tpm
- theme: github.com/wfxr/tmux-power
- continuum: github.com/tmux-plugins/tmux-...
- resurrect: github.com/tmux-plugins/tmux-...
- navigation: github.com/christoomey/vim-tm...

Пікірлер: 175
@0xcoffee427
@0xcoffee427 6 ай бұрын
You didn't show after configuring the options.lua , we need to add this line require('config.options') inside config ->init.lua , i was stuck because the options settings was not enabled for me , no line number, but @42:19 i accidentally saw the line require('config.options') and i added that and it worked :D Thanks for teaching . This is a great tutorial.
@TyagiAviral
@TyagiAviral 4 ай бұрын
Was stuck on same, this comment should be pinned
@17MuMa
@17MuMa Ай бұрын
Thank you so much mate !
@JakobMusic
@JakobMusic Күн бұрын
I'm completely new to vim and i was overwhelmed by the amount of resources addressing how to build your own config. Just coming from a total VSCode noob it was hard for me to differenciate between - native nvim functionality and config - nvim plugins - nvim package managers - nvim distributions This video made it easy for me to not just blindly copy some config files and hope it works but actually understand whats going on. Thank you! 10/10 would recommend
@LiveAndLaugh524
@LiveAndLaugh524 8 күн бұрын
this is the only clear nvim setup video
@oscardavidsg
@oscardavidsg 4 ай бұрын
As someone who is new to Neovim and had no idea where to start: THANK YOU!
@justronny20
@justronny20 Ай бұрын
When I got into using neovim, I used to just copy youtubers' config files and use them, without knowing how they even worked. This is the first tutorial which I have followed, and created the files all by myself, and I have to say, I have learnt so much about neovim configuration. Thanks for this!
@jamesgrimes3840
@jamesgrimes3840 8 ай бұрын
This is a well done walkthrough. Your explanations really helped to make sense of the configuration. Thank you.
@bluwlvrine
@bluwlvrine 6 ай бұрын
This was SOOOO much more helpful than any other nvim config video I have seen, it was exactly what I needed to understand and set up my own nvim config. I appreciated the explanations of what things did and how they worked rather than just showing the code to install them. Thank you!
@mrflimpam5948
@mrflimpam5948 21 күн бұрын
7:52 , Thank you so much!! I was trying to quit neovim for a month now
@tommethrail7117
@tommethrail7117 5 ай бұрын
Thank you so much for this video. First time I configured Neovim without using a preconfigured distribution (preconfigured is fine, but you can spend loads of time trying to figure out how to customise a particular config) and I finally see how simple it is to get Neovim working the way I want it.
@satpathypratik
@satpathypratik Ай бұрын
Great video! Very informative. Loved how you explained everything, giving us a foundation to build upon. Thank you! 😄
@mssafy2592
@mssafy2592 7 ай бұрын
this gold man , I spent days trying to configure my nvim , thank you very much !
@devabdul
@devabdul 9 ай бұрын
Such an amazing, very very informative video almost everything is covered in video.❤❤
@theradlectures
@theradlectures 9 ай бұрын
Glad you liked it!
@KW-oi4bi
@KW-oi4bi 3 ай бұрын
only 15 minutes into the video and this video already proves to be a very useful not only to nvim but to the linux cli in general
@avramlevitter6150
@avramlevitter6150 7 ай бұрын
This has been great! I'm only half-way through but I'm already very glad to find a tutorial like this. Everything I find seems to want to get you from 0 to "fully fledged IDE" in a matter of minutes, but I wanted a step-by-step explanation because I want to be able to customize a lot of different things and it was very hard to figure out what to change and where. My own setup is already different than yours (certain keymaps, options, a different colorscheme) but I know exactly which file I'd edit and how to make further changes and install more plugins.
@theradlectures
@theradlectures 7 ай бұрын
Awesome. That's great to hear. Certainly that was my intention, to allow viewers to understand how to configure their own setups.
@maiafae4807
@maiafae4807 3 ай бұрын
Duuuude! You are an angel. This is the walkthrough I needed. Thank you!! ❤
@matteostara
@matteostara 9 ай бұрын
I use LazyVim from Folke, but I'm gonna follow this video and recreate the same config in vanilla Neovim. Thanks for this, great tutorial 👍🏻
@theradlectures
@theradlectures 9 ай бұрын
No worries at all! I hope it assists in setting up your own config. Drop a comment if you come across any other nice optimisations.
@rednexikan
@rednexikan 9 ай бұрын
Great video brother!! Im WAITING for the second video you mentioned
@theradlectures
@theradlectures 9 ай бұрын
Nice one man! Stay tuned!
@cubs9974
@cubs9974 9 ай бұрын
Super video! Was only looking for random useful plugins and immediately installed indent blankline and autotag. Loving them! Few recommendations from me, ctrlxa ( flip true to false with ctrl x a) and harpoon to jump to specific buffers instead of cycling through them. Thanks again for the video! 🙌
@theradlectures
@theradlectures 9 ай бұрын
Thanks for the great recommendations, I will be sure to check out ctrlxa and harpoon! Glad you enjoyed the video.
@hahaheheh0h0
@hahaheheh0h0 7 ай бұрын
thank u! i have started using neovim thanks to your great guidance and tutorial.
@ditchcomfort
@ditchcomfort 6 ай бұрын
Awesome video. I will give this a try (again) tomorrow on macOS. Just to have a plane/basic, functional nvim on my system. Very very detailed guide 👌🏻 Thank you.
@mostafatouny8411
@mostafatouny8411 2 ай бұрын
Thank you so much! It is wonderful how in one tutorial video, I can get to do lsp from scratch.
@wsollers1
@wsollers1 8 ай бұрын
Thx so much. This is a great resource for learning and bootstrapping yourself in this ecosystem
@hermit597
@hermit597 9 ай бұрын
My LazyVim lsp keymaps just broke (though admittedly i did do some weird stuff to the config) so this video just came at the perfect time for me to recreate the whole thing. Many thanks!
@theradlectures
@theradlectures 9 ай бұрын
I know the pain of a broken config. Glad this could be of use! Cheers!
@benjaminemori9089
@benjaminemori9089 9 ай бұрын
The guy complaining about this video not being complete or what he expects should speak for himself! This is by far the best neovim video in terms of indepth explanation that I have had as a beginner. The tutor did a nice and hugely comprehensive job! Pls bring on other area you couldn't quiet I'm sure for time sake capture in this particular video🙏 Nice job once more, keep it up!
@theradlectures
@theradlectures 9 ай бұрын
Thanks very much for the nice feedback! Glad this was of use for you, I will definitely follow up with a more in depth video soon.
@RolandAyala
@RolandAyala 5 ай бұрын
Echoing what others have said here, thank you!! This is the best nvim tut that I've come across. Super appreciate! Sub'd.
@skyturtle7233
@skyturtle7233 8 ай бұрын
Such great work!! I learned so much watching this video and perusing your nvim repo! Keep it up!
@theradlectures
@theradlectures 8 ай бұрын
Thanks! Glad it was useful. Stay tuned for a more advanced video soon! Thanks for the kind feedback!
@KeeWansite
@KeeWansite 8 ай бұрын
You are awesome, step by step no rush. fully detail explanation.
@theradlectures
@theradlectures 8 ай бұрын
Thanks a lot!
@pedu71
@pedu71 Ай бұрын
went crazy because of "sourcing your config is not allowed with lazy" errors in 2024/6 with V10.0. After cloning the repository everything was fine, thanks for this great tutorial in the end. Newbie to NeoVim who has now learned a lot instead of just mindlessly copying configurations 👍 Your explanations really helped to make sense of the configuration next times. Thank you.🤗
@theradlectures
@theradlectures Ай бұрын
Great to hear it. In a few months I'll do an updated video. Thanks for the feedback!
@kb571994
@kb571994 7 ай бұрын
Very nice video. Very easy to follow even if you don't know the lua language!
@dusanalic1686
@dusanalic1686 7 ай бұрын
i like your teaching style a lot. great video.
@adamrudder1746
@adamrudder1746 8 ай бұрын
Great video! Doesn't really assume any previous knowledge and has great explanations of each step. As someone who just codes for fun, and wants to avoid vscode, this was a perfect introduction. Even my 12 year old is following along easily.
@theradlectures
@theradlectures 8 ай бұрын
Aweseome! Thanks for the sub!
@lingtoone3719
@lingtoone3719 8 ай бұрын
I second this. a HUGE problem with neovim tutorials is they assume you have a decade of programming experience. Thank you so much for posting this Rad!
@theradlectures
@theradlectures 8 ай бұрын
Appreciate it, @@lingtoone3719. love the username btw!
@lingtoone3719
@lingtoone3719 8 ай бұрын
Thanks! It's poking a bit at Chinese 零(read as "ling") means zero. Then to 1. 0 to 1
@goncalorodrigues1964
@goncalorodrigues1964 9 ай бұрын
Neovim newbie and following your install guide. A few minor things I cannot reproduce (most likely, because I am on arch with konsole as terminal emulator), but otherwise extremely helpful. Thanks a lot for all the work you put into this.
@theradlectures
@theradlectures 9 ай бұрын
No worries at all! Good luck with your new config!
@catskinner6
@catskinner6 8 ай бұрын
I'm fairly new to Linux and Neovim as well, and just switched from Konsole to Wezterm as it also uses Lua config files. This solves a lot of the Konsole limitations and more practice with Lua.
@cr4zyg3n36
@cr4zyg3n36 8 ай бұрын
Great video man thanks a million easy to follow you don't assume any previous knowledge and great!!!
@theradlectures
@theradlectures 8 ай бұрын
Really glad it was helpful! Cheers man.
@stokrota
@stokrota 8 ай бұрын
Fantastic video! Thank you so much!
@whatsnextforkev
@whatsnextforkev 8 ай бұрын
ChadNV does most of this out of the box. But great video! I learned the bit about Tmux
@iliafrenkel5274
@iliafrenkel5274 8 ай бұрын
Thanks, mate! Very helpful and concise video. P.S. Your inconsistent use of single and double quotes is killing me! 🙂
@TheGogiu
@TheGogiu 7 ай бұрын
Amazing video. i watch it all entirely. So interesting. New sub if you keep doing content like this.
@theradlectures
@theradlectures 7 ай бұрын
Thanks, brother! Stay turned for more soon! Thanks for the sub.
@tony-go-code
@tony-go-code 8 ай бұрын
thank you for sharing with detail explanation.
@michaelkrasilynets3443
@michaelkrasilynets3443 8 ай бұрын
Great tutor!
@sandeshshahi2181
@sandeshshahi2181 8 ай бұрын
Great video
@basettabz
@basettabz 8 ай бұрын
Amazing, very clear :D whenever you have time, you add also the same for go :D
@sauravsharma6170
@sauravsharma6170 7 ай бұрын
very nice explanation..
@Flonkation
@Flonkation 8 ай бұрын
General workflow tips and more VIM tutorials would be nice
@winghaa24
@winghaa24 9 ай бұрын
I'm using LunarVim and wanted something more light weight and easier to config but all the LSP guides are kinda old. Thank you for the helpful vid.
@p99chan99
@p99chan99 9 ай бұрын
I think regarding Windows and NerdFonts, we can just select it from the powershell settings and we'd be fine right?
@4crafters597
@4crafters597 7 ай бұрын
Is there any way to add a subfolder to the plugins dir, preferably that can be toggled on and off with a command or on file load?
@ashitabhmisra9123
@ashitabhmisra9123 7 ай бұрын
Hey great video! Thanks a ton for this! I just had one question. I am having a hard time adding extensions to telescope. Could you give some idea how to do that ? I basically want live_grep to function from project root and not current working directory and below. Any leads would be great! Thanks !!
@MID3EE
@MID3EE 2 ай бұрын
can someone help me when i map commenting nvim thinks it as searching so it brings me to the place where we run commands with forward slash basically it takes it performs same task as what it does when we type " / "
@dmodmodmodmo
@dmodmodmodmo 8 ай бұрын
good content :)
@PauloSilva-sx3wl
@PauloSilva-sx3wl 8 ай бұрын
Thanks. I used some settings.
@Marko1999m
@Marko1999m 6 ай бұрын
Hey dude great tutorial just keep going like that! I have one question though, I've set up LSP for c/c++ but my header files are recognized as cpp files is there a way to fix it?
@WhatNameHere
@WhatNameHere 3 ай бұрын
Hey what did you use to open new files in new buffers?
@PeoplesPanda
@PeoplesPanda 9 ай бұрын
king
@user-ot7um3pc6x
@user-ot7um3pc6x 7 ай бұрын
I'm using Mac and it's not installing the lazy.nvim after adding the line require('config'). Timestamp: 20:30. anything I can troubleshoo
@antoniocolagreco1483
@antoniocolagreco1483 5 ай бұрын
thank you
@rensraks2007
@rensraks2007 9 ай бұрын
Thank you so much!!! . Very detailed!!! Extremely helpful Is it possible to share references or make a video on how to get started with absolute basics e.g vim.fn , vim.opt, how to read a plug-in for additional setup etc. Could never find any resources on them.
@theradlectures
@theradlectures 9 ай бұрын
Glad that you found it helpful! Great suggestion. I will definitely consider making some content around the neovim and vim APIs! For the moment, the best place to start with plugin configurations is the documentation for each plugin which have linked, but feel free to take inspiration from my nvim config too!
@sebby5336
@sebby5336 3 ай бұрын
AHH, now I'm stuck at 1:50:00 where cmp_nvim_lsp isn't being recognized. is there any option for a direct contact with you so I could ask questions?
@4crafters597
@4crafters597 7 ай бұрын
How does the Lualine jump from the bottom to the top?
@4_millimeter_defeater358
@4_millimeter_defeater358 9 ай бұрын
Great video. i just finished it and i've been following along for almost a week now lol. I checked each one of the plugins and everything made sense except the neoconf and neodev plugins, they just seem so random. I'll admit that i've never really worked on huge projects with configuration for the tools but i don't really get the point of switching to json configs when the entire time we were using lua. Would love an explanation or not, i spent too much time on this anyway. Once again, lovely video and thanks a lot.
@theradlectures
@theradlectures 9 ай бұрын
Glad that the video was helpful! You're spot on that neoconf and neodev are not particularly useful in the context of this config setup, however, I included them due to the fact I've been using them recently on some other projects. You can definitely proceed without them, ultimately I could have omitted them as I did with some other plugins I use such as leap, copilot nvim etc. Good feedback!
@user-op5mn4xy2p
@user-op5mn4xy2p 7 ай бұрын
Thanks for this tuto, it's the best explanation I get as a beginner. I just wanna how to fix nvim status bar at top. my terminal is a gnome terminal and ubuntu 22.04 haven't alacritty packet.
@user-uo8yg5ky1q
@user-uo8yg5ky1q 8 ай бұрын
Excellent, I have been struggling to setup neovim from start with lua and this is a perfect starter pack. Thank you very much for putting it together. I have a question I'm following along, but how are you getting this small window whenever you are typing a command ?
@theradlectures
@theradlectures 8 ай бұрын
Glad it helped! The utility that displays the key presses is "screenkey" in linux!
@sebby5336
@sebby5336 3 ай бұрын
hey, at 1:28:00 i am unable to install python3.10-venv on ubuntu 23.10 [sudo] password for sebvu: Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package python3.10-venv E: Couldn't find any package by glob 'python3.10-venv' i don't really know what else to do from here, as i believe it's required to install black when i try installing black, this is my error. ▶ # [14/14] spawn: python3 failed with exit code 1 and signal 0.
@minhazrahman4828
@minhazrahman4828 3 ай бұрын
Hello sir .. does it support for MERN stack ???
@muneebrizwan6745
@muneebrizwan6745 2 ай бұрын
i have installed jdtls , mason is showing it but it is not showing ,
@bad_Al
@bad_Al 7 ай бұрын
i watched entire video, and move completely to neovim. I'm using go as a backend dev, installed some go related plugins and its working great. May be you already answer this but, you said u're going to make a second video, any update on that. BTW great work.
@theradlectures
@theradlectures 7 ай бұрын
That is awesome! Really glad it was helpful. Yes, I plan to release a "Next Level NeoVim" with debugging, AI tooling and note taking before Christmas.
@hazeion
@hazeion 5 ай бұрын
I can not for the life of me get C-j and C-k to work with navigating snippets. C-p and C-n work. .But the rebindings to cmp.mapping.select_next_item dont work at all
@DangerHiVolt
@DangerHiVolt 8 ай бұрын
I really appreciate you doing this tutorial. As a noob to coding, learning lua via setting up nvim has felt like my first real coding project and this 'real world' application has helped me understand the 'why' of coding not just the 'how'. So, thank you for giving me a break thru moment in my coding journey. One question though, the lsp_cmp_lua and diependencies language in the LSP Config.lua breaks my build regarding setting up my cmd_nvim config. I feel something was left out of the tutorial that connects these two. Any hints to help me out? Thanks!!
@theradlectures
@theradlectures 8 ай бұрын
Make sure that you have the below plugin included as a dependency in the lsp config (see my github for guidance). "hrsh7th/cmp-nvim-lsp"
@favreje
@favreje 9 ай бұрын
What a fantastic video! I've been using vim for quite a while, but stuck to a fairly vanilla setup, as I used it for quick configs, etc., and not as an IDE. This was the detailed, well explained video reference I was looking for. Thanks so much. A quick comment that you probably cannot address, but what the hell.... I get some startup lag that I'm not seeing in the video when you relaunch. Not terrible, but annoying compared to my previous set up. Any thoughts?
@theradlectures
@theradlectures 9 ай бұрын
Glad to hear the video was helpful! You may have already taken some of these steps, but the course of action that I would take in this situation would be: 1. start neovim like this: "nvim --startuptime startup.log" which will log all the startup data into the file startup.log 2. review the plugins to see if you can switch any to lazy loading (without detriment to your setup) 3. take a look at your `:checkhealth` within neovim to ensure there are no startup related warnings (although unlikely, but if all else fails this might provide more information). What OS are you running out of curiosity? I am running this config on a few machines and get an average startup of 60-70 milliseconds (you will find this in your startup log).
@maltedickson
@maltedickson 7 ай бұрын
For me the Neovim AppImage had a slow startup time, but when I instead installed Neovim "from download" (nvim-linux64.tar.gz) it was fast.
@dwarfman78
@dwarfman78 7 ай бұрын
that's a great guide as long as everything works, however when something is not working you are kinda left on your own as nothing is standardized it's hard to find any relevant help online. For instance i hardly find any help on how to change the defaut efm config from the standard formatting to a custom formatting which is a common thing to do though. Lua_ls is not working as expected (no manual entry found for) too and i can't find any help as other people online have different plugins and way of configuring them because of that i don't event know where to start looking in my (your) own config files. I think i'm going to fall back to a pre-configured neovim distribution, it will be quicker and work out of the box.
@user-bg4kq7kx4c
@user-bg4kq7kx4c 7 ай бұрын
It will be great if you make a how to for supporting salt and jinja2. It is a little frustrating for me to do this since i need 2 different lsps in a single sls file.
@user-xr9mg9st3p
@user-xr9mg9st3p 6 ай бұрын
This has been amazing Radley! Thank you so much! I just finished the tutorial and I spent en entire month on it just pausing the video and then doing my own reading/configuration. I learned so much from you :D If it's possible could you add an LSP, Linter, and Formatter for PHP to your nvim GitHub repo? I tried adding it on my on own (tried pslam/phpactor as LSPs) + (tried phpcs/phpstan as Linters) + (phpcbf as Formatter) but I couldn't get it to work The only thing I got to work was phpcs, but it was so annoying, it wanted me to write a whole dang intro document in the beginning of every php file, otherwise it won't shut up :))
@theradlectures
@theradlectures 6 ай бұрын
Hey man, that's awesome. I am really happy to hear how much you got out of the tutorial. Actually, I'm not a php developer. But if I get a chance at some point I'll take a look. No promises though haha.
@user-xr9mg9st3p
@user-xr9mg9st3p 6 ай бұрын
@@theradlectures No pressure, your video did a lot for my learning already so thank you anyway :)
@marshallbcodes
@marshallbcodes 8 ай бұрын
This guy knows what the people want lol 27:52
@p99chan99
@p99chan99 8 ай бұрын
I want to configure the settings on my theme plugin (I'm using dark_flat), I have to add transparent = true but I don't know which file should I add this statement?
@theradlectures
@theradlectures 8 ай бұрын
You can pass this in the setup function for the dark flat theme. Hope this helps!
@aakarshmj7256
@aakarshmj7256 3 ай бұрын
Great video, I definitely learnt a lot. I am facing a bit of an issue if someone could help out, both tmux and nvim works nicely seperately but if try running nvim with tmux it crashes with "server exited unexpectedly". Is anyone also facing this issue?
@rajivkumarkale
@rajivkumarkale 7 ай бұрын
In the lua/config/options.lua opt.relativenumber = true opt.number = true if someone isn't seeing the same number column as him add the second command
@Codigger-br2rt
@Codigger-br2rt 4 ай бұрын
I am performing some maintenance in the NeoVim configuration, almost entirely written in Lua. Is there a way to record function types in Lua, including descriptions of their parameters?
@theradlectures
@theradlectures 4 ай бұрын
Yes. You can check out my nvim repo in the utils(?) file. There are parameter and return type documentation examples there (similar to jsdoc)
@Codigger-br2rt
@Codigger-br2rt 4 ай бұрын
Thank you very much. I have tried this solution and it can solve my problem
@olivierblender3023
@olivierblender3023 8 ай бұрын
I have an issue whit splits shortcut. When I press s, it's change mode to insertion ... so when I try to split the window with your shortcut it's just get in insertion mode. Do you have any idea why ?
@theradlectures
@theradlectures 8 ай бұрын
's' is a keybinding in vim that deletes the character under the cursor and then enters insert mode. So for this reason the leader prefix is needed (spacebar in my case). Hope that helps!
@kushalmondal618
@kushalmondal618 7 ай бұрын
i can even set the nvim config that allows me to do MERN development with ease..... My primary code editor is vscode, now the day i heard it's made with electron(JS), so its basically a browser, thats why so much of load time, for my TS projects , the JAVA intellisense will also load huh? nah dont need that, though i have a very good command over the VS code snippets and key-bindings...... but as i can now do my work with only key-board(95%), i have a courage now to use nvim, with lazyvim ofcourse, but i could not find any proper way to install within windows 11, its the tree-sitter that is giving me error, says from neo-tree, and also when im inside the project directory, and opening the tree with leader_key-e , and opening a file from there then its gives me the error, so should i try it with my WSL(Debian), will it be more convenient?
@MatthewBritt27
@MatthewBritt27 9 ай бұрын
Just FYI - your mic is popping out pretty regularly, guessing maybe a noisegate or filter being uber-aggressive (EDIT: looks like you caught it after the first section :D) Otherwise, great info! I've been avoiding a full restart of my config since null-ls archived. Think this looks like the perfect reason to get into it!
@theradlectures
@theradlectures 9 ай бұрын
Thanks, Matt! Yes, apologies for the audio there toward the start. Just an FYI that if you use null-ls there is a maintained fork under nvimtools/none-ls.nvim if you want to stay on that track. I was using null-ls for a long while but am happy with the shift to efm. Have fun with the new config!
@MatthewBritt27
@MatthewBritt27 9 ай бұрын
Hell yeah! I had no idea someone had picked it up. Will try efm, but good to know.
@sumitpradhan4328
@sumitpradhan4328 7 ай бұрын
Please make video on setting up wsl with all the terminal and neovim setup. Also I am using vscode with vim for my daily development. If possible make setup like vscode or beginner friendly.
@gudurana2150
@gudurana2150 8 ай бұрын
Hi, I'm having a problem with noice.nvim and it's always giving a message Notify No information Available How can I disable or hide it?
@hahaheheh0h0
@hahaheheh0h0 7 ай бұрын
hi im having the same issue too. did u manage to find a workaround?
@v47on
@v47on 9 ай бұрын
can u codeium and code runner that would be great
@danielstellmon5330
@danielstellmon5330 8 ай бұрын
While I am very gratefully for you well produced video, I would like to suggest that should you do such a project again please give the video its own github repo. Following along was helpful in the learning process to me, but finding typos and other errors was frustrating. Please post your personal live repo to so we can see what changes you have made, and a static repo that just follows the video.
@theradlectures
@theradlectures 8 ай бұрын
Everything is in the git history. I have included the commit corresponding to the video to make it easier.
@danielstellmon5330
@danielstellmon5330 8 ай бұрын
@@theradlectures I need to up my git skills :(. I did not think of that.
@theradlectures
@theradlectures 8 ай бұрын
All good brother. Your feedback is still on point, a separate branch would not hurt and I will consider this in upcoming videos!
@stalbar5581
@stalbar5581 8 ай бұрын
I'm stuck on connecting nvim-cmp because I get the error module 'cmp_nvim_lsp' not found
@theradlectures
@theradlectures 8 ай бұрын
Make sure that you have the below plugin included as a dependency in the lsp config (see my github for guidance). "hrsh7th/cmp-nvim-lsp"
@stalbar5581
@stalbar5581 8 ай бұрын
@@theradlectures thank you for awesome guide!
@arcuscerebellumus8797
@arcuscerebellumus8797 9 ай бұрын
One of the best and most comprehensive tutorials on the thing I've seen so far. Thank you very much for this wonderful piece of work. I noticed that you don't stack `require` and `return` statements. Is that a preference or a limitation? I've been trying to organise my config to get away from a single init file, but found it difficult to understand how it wants me to do things in a directory tree with multiple levels. For example, if I have .\User\lazy\plugins and then want to make init and require it from init in .\User my statement looks like require'User.lazy.plugins', right? But I get "this file doesn't exist"... I also tried relative paths (like 'lazy.plugins') - still the same error. Also, I'm concerned that as you go up the tree the statements get more and more verbose as you have to call out modules starting at work directly (basing it on how other peoples configs look)... am I missing something here?
@theradlectures
@theradlectures 9 ай бұрын
Thanks for the kind words! I am glad you found it helpful. Generally speaking I keep my file structure flat. I do see a lot of people using the User/... structure. As long as things are references correctly by the Lazy instantiation then this should not be an issue, even if, as you mention, you are using init.lua (this is standard behaviour). Good luck on the journey to fixing it. Hard to say, but I would start with the lazy reference to to plugin (note: you are probably already aware but you can pass multiple plugin directories here).
@arcuscerebellumus8797
@arcuscerebellumus8797 9 ай бұрын
​@@theradlectures - Thanks for the response. My question wasn't as clear as it should have been... sorry. I'd be very appreciative if you could answer a rephrased version, but if you didn't see this or just don't feel like it - I totally understand. What I essentially want to do is to have a config that gets called with a single `require` statement in top level ./init.lua (such that I can easily swap configs without using git) and has sort of an "OOP" structure, that just by looking at directory tree kinda reflects what gets called by what. So far I internally settled on having plugin setup tables in sepparate files in sub-directory of where the package manager setup resides... but that doesn't seem to work because (I presume) Lua treats every `require` call as if it's made from the top level. So if I have something like... 1. ./init.lua --here I just want to have require('User') 2. ./lua/user/lazy/init.lua 3. ./lua/user/lazy/plugins/init.lua (Sort of a nested module kind of situation.) ...to call `plugins` from `lazy `I have to write require('user.lazy.plugins') and not just require('plugins'), which is a bummer, because now if I'd want to rearrange the directory I'd have to edit every require statement... which means that now I have to write some utility function that has to deal with module.path and extract the obsolute position of a module that I want to connect my submodule to... and so on and so forth. I'm just not familiar with Lua, like, at all... Do any of the assumptions above strike any red flags iyo? Just wondering if satisfying my OCD is even worth it, i guess... %) Sorry for this drawn out explanation. I get that it's more of an SO question than a YT comment, so, again, if you don't feel like it - no hard feelings.
@theradlectures
@theradlectures 9 ай бұрын
Thanks for your message@@arcuscerebellumus8797! The syntax you are using seems to be correct with respect to requiring files in lua. However, if I understand correctly, you want to require files based on a global variable. You can take a look at this stack overflow post: vi.stackexchange.com/questions/36647/neovim-lua-script-to-dynamically-load-lua-config-files.
@moutafatin
@moutafatin 8 ай бұрын
How to change the position of lualine? the status appear on the top
@theradlectures
@theradlectures 8 ай бұрын
By default it will be at the bottom. Check out my github if you want it at the top.
@josephquinn2620
@josephquinn2620 8 ай бұрын
any idea why when i save a file i have to save twice, i will save once and then formatting with happen and then i will have to write again. Great video btw
@theradlectures
@theradlectures 8 ай бұрын
Try changing your autocmd to BufPreWrite (if it isn't already) so that the format hook is pre-write. Glad it was helpful otherwise!
@amaraag9435
@amaraag9435 8 ай бұрын
Great video. I was searching much neovim videos. That video is best one. I have 3 questions. First question is: In my case, Ctrl+a doesn't split screen and doesn't show terminal. Can you tell me my config's problem? Second question is: How change file name? Third question is: I can't paste on nvim from other windows. When paste only few symbols pasted. How enable paste from other window? Thank you.
@theradlectures
@theradlectures 8 ай бұрын
Thanks for your comment! If you want to split your screen, it depends on whether you are in tmux or in neovim, so be sure to check your keymaps. With respect to file changes, the easiest way to rename a file is likely with `r` in the file explorer. Finally, check to ensure that you have the correct options for copy paste in the vim opts. Good luck!
@prashlovessamosa
@prashlovessamosa 3 ай бұрын
can you please make a new one as your config are changed.
@lmnts556
@lmnts556 8 ай бұрын
Definitely user dark reader for your browser.
@bromodomo
@bromodomo 9 ай бұрын
Why the github code is differente from the video?
@theradlectures
@theradlectures 8 ай бұрын
The github is basically the same, and you can see older versions in the github history.
@TechHorizonUnveiled
@TechHorizonUnveiled 6 ай бұрын
Will this work for WSL2 Ubuntu?
@theradlectures
@theradlectures 6 ай бұрын
Should man, I may make a video on this
@TechHorizonUnveiled
@TechHorizonUnveiled 6 ай бұрын
@@theradlectures please do. I'll really appreciate. I really want this.
@ThreiasFB
@ThreiasFB 5 ай бұрын
Wait, hold up! What do you mean usr is nor user?! Preposterous
@SuperMusikstar
@SuperMusikstar 7 ай бұрын
When you start installing efm and the Lsp's you skip some steps making the video hard to follow, for example the Lspsaga keymap isn't even on the github page, but besides that really helpful video.
@vlad3c
@vlad3c 8 ай бұрын
Thx for information, it was helpful. But, man please do not type "clear" after every command. I'm understand that you care about your screen clearance, but it's tutorial. And terminal log is very helpful in it, especially if someone will repeat after you.
@zherka_pill
@zherka_pill 3 ай бұрын
i cant belive i am nerd
@emretekmen1602
@emretekmen1602 Күн бұрын
For those who got lost at 44:00 because this bozo does a random cut in the middle of explaining what to do. make sure your nvim-tree.lua looks like this: return { "nvim-tree/nvim-tree.lua", lazy = false, config = function() require("nvim-tree").setup() end }
@muneebrizwan6745
@muneebrizwan6745 2 ай бұрын
please help
@cprn.
@cprn. 9 ай бұрын
It's not even a complete IDE guide as it's missing vital parts like debugging, building, basic code actions like abstracting, automatic removal of unused imports, there are no views for merge/rebase/bisect, no runners (e.g. for idk... tests?), no snippets nor tons of other coding-related functionalities. And what about the rest of the iceberg - all of those amazing things `nvim` can do that aren't related to coding? Like great distraction free writer's setup, pandoc integration, using it for editing documentation or any text area in your browser, using it with any email client, editing your command line, simple note taking that doesn't need all of these fancy bells and whistles or a private storage with in-memory encryption? You haven't scratched the tip of the iceberg and you're calling it "a complete guide". Don't get me wrong, if someone's new to `nvim` in general, it's great, it's probably more than they had but they'd have the same result after watching any of those 15 min "Instant IDE" videos and somehow you made it into 2 hours.
@theradlectures
@theradlectures 9 ай бұрын
NeoVim has many more capabilities beyond what has been presented here, you're right. My intention however, which I state at the beginning of the video was to show how to configure a really solid based configuration from scratch. This video has been really well received, but I am certainly open to feedback. Ultimately, I wanted to show people how to configure their own setup, and build upon it, rather than impose a lot of decisions on them.
@theradlectures
@theradlectures 9 ай бұрын
@initialized thanks! I'm glad that the video was helpful. I have a number of videos lined up, and a deeper look at NeoVim for developer workflows (debugging, AI tooling, note taking among others), so a follow up video will be released at some point!
@artwheat7859
@artwheat7859 9 ай бұрын
Respectfully, I disagree regarding a couple of your points. First the content creator never states it is a complete IDE in the title or description. If he did in the video I missed it. You are correct it doesn’t cover debugging, abstraction, longing, etc. but the dude is just walking people through “a complete guid” of how he sets his system up. He’s laying the foundation of which I’m sure he could expand on if he wishes at some point. As for the length of the video, it’s perfect because he is walking me through everything step by step. I’ve tried doing the complete install scripts for Lazy and Lunar, and while I had a complete IDE system ready to go, I didn’t understand how it worked. While the “engine” ran fine, I didn’t really learn what was going on under the hood. By taking the time to follow along and type in the code step by step instead of just copying his dot files, making errors along the way, and having to find and fix them, I’m off to a better start than any of this complete IDE’s explained in any 15 minute video. Maybe I’m not as quick a learner or have your experience, but as someone new to setting up a rather complex system, this was incredibly helpful and I’m grateful for people who put the time and effort into sharing their knowledge and wisdom with others.
@cprn.
@cprn. 9 ай бұрын
@@initialized I'm not infuriated, not even angry. I'm just stating facts so that people watching this would know there's much much more that can be done. TJ DeVries (Neovim's core maintainer) made a ~15 minutes long video about making `init.lua` from scratch few months back and since then a ton of those "complete guides" started festering yt copying of each other without much (or literally any) changes to what he proposed. This is one of those videos.
@cprn.
@cprn. 9 ай бұрын
@@artwheat7859 Try the first video that spawned all of those "remakes" - "Effective Neovim: Instant IDE" by TJ DeVries - it's a very sane init.lua in ~15 minutes and covers almost everything covered here.
@jacoboneill3735
@jacoboneill3735 8 ай бұрын
Loved this tutorial so much until I got to the LSP configuration stuff. Struggling to add C++ support. Keep getting an error about how clang-format doesn't exist despite it being in Mason: `local clangformat = require("efmls-configs.formatters.clang-format")` Any help would be great if anyone can figure it out. Always desperately wanted to go to nvim but not use a distro so I fully understand the functionality but can never get my head around this... Also, had an issue with the notify notifying me everytime I go into insert mode, easy fix with `vim.api.nvim_set_option('showmode', false)` :)
@theradlectures
@theradlectures 8 ай бұрын
I just added it and pushed it to my nvim repo. Make sure you install clangd, cpplint and clang_format. (your import from efmls should have an underscore rather than a hypen). Hope that helps!
I tried Neovim Distributions so you don't have to
9:12
typecraft
Рет қаралды 149 М.
Linux System Administration Full Course
6:41:06
My CS
Рет қаралды 318 М.
Finger Heart - Fancy Refill (Inside Out Animation)
00:30
FASH
Рет қаралды 27 МЛН
No empty
00:35
Mamasoboliha
Рет қаралды 8 МЛН
Gym belt !! 😂😂  @kauermtt
00:10
Tibo InShape
Рет қаралды 17 МЛН
Heartwarming Unity at School Event #shorts
00:19
Fabiosa Stories
Рет қаралды 23 МЛН
Arch Linux One Of The Easiest Distros To Install
14:16
DistroTube
Рет қаралды 81 М.
How to ACTUALLY switch from VS Code to Neovim
5:09
Joshua Morony
Рет қаралды 199 М.
My Entire Neovim + Tmux Workflow As A DevOps Engineer On MacOS
1:08:17
Mischa van den Burg
Рет қаралды 161 М.
Tmux From Scratch To BEAST MODE
12:44
DevOps Toolbox
Рет қаралды 103 М.
NvChad - neovim, treesitter, lspconfig, lint and conform - Archlinux
1:51:49
Programming Rainbow
Рет қаралды 1,7 М.
The Only Video You Need to Get Started with Neovim
34:00
TJ DeVries
Рет қаралды 305 М.
How I Setup Neovim To Make It AMAZING in 2024: The Ultimate Guide
1:26:35
Josean Martinez
Рет қаралды 184 М.
0 to LSP : Neovim RC From Scratch
30:47
ThePrimeagen
Рет қаралды 1,2 МЛН
Vim vs NeoVim, What's the Difference?  Which Should You Use?
10:29
Mental Outlaw
Рет қаралды 316 М.
Опасность фирменной зарядки Apple
0:57
SuperCrastan
Рет қаралды 11 МЛН
Копия iPhone с WildBerries
1:00
Wylsacom
Рет қаралды 8 МЛН
Запрещенный Гаджет для Авто с aliexpress 2
0:50
Тимур Сидельников
Рет қаралды 906 М.
My iPhone 15 pro max 😱🫣😂
0:21
Nadir Show
Рет қаралды 715 М.