VIM Fundamentals

Why vim & Prerequisites



VIM Fundamentals

Check out a free preview of the full VIM Fundamentals course

The "Why vim & Prerequisites" Lesson is part of the full, VIM Fundamentals course featured in this preview video. Here's what you'd learn in this lesson:

ThePrimeagen discusses some personal history with getting into using vim, what types of content is on their Youtube and Twitch channels, what type of person should take this course, and course prerequisites. Different types of vim are also briefly covered in this segment.


Transcript from the "Why vim & Prerequisites" Lesson

>> So why do I use vim, right? Well, I was just like everybody pretty much in this chat. At one point I accidentally opened up vim or followed a tutorial to open up vim. They told me to write something, I got confused, I couldn't make it work, I started typing in a bunch of stuff.

And then I couldn't figure it all out. And eventually I just took my computer and placed in the bathtub like I didn't have any other choice at that point, but to get rid of it. And eventually I figured out how to exit vim, and it felt fantastic, I felt just like this guy.

Yes, this is one of just a couple means about them. We'll try to keep them short. But I really felt I was somewhat of a scientist after learning how to exit vim. And, it was just so strange. Like I couldn't fathom why anyone would use this editor. I remember being in college, and my buddy Randy would use it and he was very fast at it.

And I'd go. Dude, why are you using that? There's NetBeans. NetBeans, the superior editor you may have heard of it and, It's just like I thought it was just silly to use it like it didn't make any sense to me. And for a long time I operated like that I just I didn't understand why, right, until one day, I saw someone, now they may have been using Emacs but they had been motions on and all that but.

That's beside the point. We're not high priests of the Emacs church around here. We're doing vim, all right, but he was moving so fast and could do so many things. Only with his keyboard at such a rate. My goodness. I remember watching that and thinking, my goodness, is he playing Starcraft.

What is happening here? This is incredible. I want that whatever that is, I want to be that good. Because what I do today versus what he does, I am terrible. Like, I am just absolutely terrible. And I just you know, it just really stuck with me. And so from that moment on, I decided, okay, I'm going to get good.

I'm gonna figure this out. So I started first using, IntelliJ. Right? I think a lot of people probably use IntelliJ or VS code, there might be a few unfortunate souls that still use sublime. Hey, sublime users. I hope you guys are okay? You guys, just come forward coming to anything else.

But, here's the deal is when I started. I started with just a plug in, using my editor. All right. I do think that that's a pretty good approach. Cuz Vim has its own motions. Plus it's all of its own terminology and all those things and so can get confusing just using Vim by itself for the first time.

And so I did that for, a few years. And then eventually I made the switch to Vim. And then I went to like Doom-emacs, and then I went to spacemacs, and then I went to space Vim, and then I went to NeoVim, and then I went back to Vim, and then now I'm back at NeoVim, right?

I tried all these different things, just tryna figure out how do I make it feel good for me? And it was a long and painful journey. And I swear I was gonna quit, because this is the learning curve for VIM. Now the nice part is it's mostly differentiable.

It's just really hard, at the beginning. And then at least you got it right? Like, you've already done the hard part, which is that first part, right and then it just gets hopefully easier. But I decided at that point I was going to be a master. I wanted to be, the best at it.

I wanted to know everything I could about it. I wanted to really dive into it. And it really has nothing to do with programming. You won't be a better programmer. You won't you know, you're not going to be smarter. You're probably not even going to be cooler. Honestly, I don't think people can walk around like, My gosh, he's watching them.

Look at him use vim. Look at those h J's and KS, right? Like no one's gonna be blown away. But I was. But either way, it's just like one of these things that. It has really helped me in some sense because I enjoy the thing that I do, it's not just simply about getting to the end results.

When something doesn't work the way I want it, I have an editor so configurable, I write it to be exactly the way I want it to be. And it always works the way I want it to be. Unless if you install a plugin that they recently updated in, breaks your whole system, which may or may not have happened this morning.

Fun fact, but. It's just one of these things that are so great about it is that it's totally, how you want it? It's not how, people that turban is kind of like the best. What could be good, you're not falling into the bucket of 80% like 20% hate.

It's exactly what you want, how you want it and when you want it. So the expectations I do want to set these early, is that vim is confusing. If you look around in the chat or in the zoom meeting, just understand that if you have a question. Probably, everybody else, or at least half of them do too.

And, if you don't ask it, no one might ask it, so feel free to ask. I do want you to feel free to interrupt. It's not gonna throw me off track. Just let me know. And we will try to align it. And if you have questions on the zoom meetings, I will try to make space to be like, hey, if you have any questions, now's a good time to ask.

And so that way it doesn't go right in the middle of me saying something. But. That's the whole goal. Please, ask questions. All right, who am I? Hi, I'm a person that makes YouTube videos about vim. I also stream on Twitch, making like vim plugins making a death match that's like a Tetris 99 style death match.

I'm gonna catch a lot of flack for saying this because I haven't worked on it in a month. They're gonna be like, I thought that was in the graveyard. My goodness. Also make live beats with Sonic Pi and Raspberry Pi's and doing everything where TwitchChat can actually make the beat themselves.

We've made some really good bangers and also it sounds like kids with drums you never know what you're going to get when you let, just a bunch of people take control of audio. And lastly, I'll sometimes stream me coding for Netflix. Netflix allows me to do that. I always get that same question every time.

Does Netflix know you're, streaming their code isn't that against NDA. And I have to say, why would I leave my multi billion dollar position, for streaming on Twitch? That's just silly, come on, of course I'm not gonna do that. And yes, I do work at Netflix, it's fantastic, lots of fun.

We're a super cool startup we ship DVDs across the United States. Who knows, maybe we're gonna expand to like South America, who knows where we're gonna go with this DVD business? I feel good about it. I think it's the future. And so who should take this course? If you want to be a developer or you are a developer, I think that this is a good person, to take the course.

You don't have to be great, you don't have to be perfect. You can be completely brand new. One thing you really do need, though if you want to have a desire to be excellent. What I mean by that is that, when you do something, do you just do it to get it done or do you do it to do it well?

There's two different types of people and sometimes job pressures and all that we all do it just to get it done. But in the end, do you enjoy the process itself? Or is your goal just to get to the end? Me personally, I want to enjoy both right?

I want to have a great experience doing whatever I'm doing if it's from the most mundane tasks to the most complicated task, and I also want to be able to get it done, at a fast and awesome pace and so that's why I like them. And lastly, you gotta want to defeat complacency.

I think a lot of people end up downloading VS code because it's just out there or IntelliJ or whatever you use. You use it. You get used to some of these weird shortcuts you know, to look up files, whatever you're like. All right, well, it just works, and I can do my job.

Yeah, I don't really like to add, I don't like this but whatever. I just want to get stuff done right, and you just become complacent. You don't really try to grow or learn more about the command line, how to get tighter how to parse, you know, some fun stuff like you don't take it to any next levels.

You just always remain, where you're kinda at. You have no idea how build system works. You just like I don't care. I just press play and things work and whatever if it breaks, I just go and take the day off right like it's just. I want to always be getting better and more knowledge and so, defeat complacency is one of the one of the big ones here.

Some prerequisites. I hope everybody here has a Unix system. If you have windows, everything that I will be showing you should work but the deal is. I don't know anything about Windows. That's the reality. I haven't used it, other than to play Apex or Tarkov and that's about it like I don't use Windows and so I can't help you that much.

I use Ubuntu or Piebuntu as I like to call it because all the plebs use it and It just works really, really well there. And so it should work also really well for Mac as well. Typing skills will directly affect your experience. Meaning if that you're hunting and pecking for keys, a, you can learn how to edit text using a fewer amount of keys.

And it could actually help improve your speed. But overall, the better you are at typing, the more effective you're going to be, especially at a tool that's centered around typing. There's also a lot of flavours of him, right? I don't know if you know this, but there's vim improved or vim.

That's where we get it from. There's NeoVim, that's the one I currently use. I've been loving using NeoVim for like the last year. I'm gonna try not to do, too many things NeoVim specific towards the end when I'm pontificating. As I said earlier, we'll probably jump into some NeoVim specific stuff.

I might have a little break here and there. There's also spacevim, if you've never used spacevim. I did use that for a little bit between my do Max and my space max. I think as pitstop that spacevim, it's like a batteries included style that they're gonna have everything set up.

That's gonna give you the autocomplete that's gonna give you nice color schemes. You know, it's going to be more managed for you. There's also only vim two. This one's actually, it's interesting. Someone's trying to combine, as they say. The UI styles of VS code, the model editing of vim, and the speed of sublime.

They do mention sublime. I mean, negative one points, but that's okay. Hey, no one's chatting around here. But it's a pretty cool project I've talked to the person who may, who's made it I played around with a little bit is pretty fun. But in the end, I use NeoVim.

You can also learn, vim in other places right? Vimtutor. If you just jump into anywhere and just type in vimtutor right here. It should open this up, and it will be a long, very beautifully styled. Think about how to use them. And you can jump all over and learn a bunch of just basic commands.

And if you do this. You will learn a lot. And this could be a good thing to reinforce some of your learnings. It won't touch on some of the deeper concepts, but it definitely does help. A place that actually does touch on some deeper concepts has been adventures.

It's a fun little game you play and you walk around as a guy using just vim, you know, vim shortcuts and eventually you get into these more complex puzzle solving situations where you have to use some of the deeper features of vim, all emulated as a game. So it's actually it's unique.

It's kind of fun. I also have some like basic commands and some various like topical points on YouTube. There's a ton of YouTube content. There's a ton of people that stream it on Twitch. It's available, right? It's all over the place. If you like reading, there's blogs. If you like reading help documents, there's a ton of documentation.

As you can see right here, I do :h user and then say tab. What I mean by that is if you open up vim, and you type type colon, you'll go into command mode. We'll cover a lot of this in a little bit, type h and then user and hit tab.

You'll be given a huge number of documents. I'm just gonna open them one at random. I have never read 11. 11 says, Did your computer crash? Are you just wow, look at this. Don't panic. Vim stores enough information to be able to restore most of your work. This is fantastic.

Most of your work is better than none of your work. Anyways, that's like a thing. So it has like all these different ways to learn them. And it's all written just with them. So that's actually a really fantastic resource. And yes, I actually had no idea what that one was gonna be.

I'm very happy with the crash what feels just so exciting.

Learn Straight from the Experts Who Shape the Modern Web

  • In-depth Courses
  • Industry Leading Experts
  • Learning Paths
  • Live Interactive Workshops
Get Unlimited Access Now