Today I'm going to do a presentation, for some reason sillily [sic] titled "Around the File in 80 Keys". I'm actually not going to go over 80 different keys you can use to navigate in Vim, I'm just going to go over a few. There might not even be 80 keystrokes in the presentation itself. But, I thought it was cute.
But first, I actually wanted to say thank you to all of you who have come tonight, it's the first meetup of this kind that I've setup, and I hope that it's educational, or entertaining, or worthile. But, if there are any suggestions you have, comments, or particularly my favorite thing you could offer is to maybe give a talk in the future. I will probably do a default talk if nobody else offers one up, but I imagine that might get a little boring if you just keep hearing me talk. So, please, submit a talk!
So, me: my name is Stephen Belcher. I believe I've probably told all of you already but in case I didn't: I'm a programmer at the National Institute of Aging. It's a government agency, and it's got an office over at the Bayview campus of Johns Hopkins. Even though it's a government agency, I'm not a government employee, I'm a contractor. I work for Kelly Government Solutions, or Kelly Services... they've got like 2 or three different names they go by. And I spend probably more of my life than is healthy thinking about different things with regards to Vim: rewriting my configuration files, learning new plugins, installing new plugins, cursing when they screw up my entire environment, that sort of thing. Or, sometimes thinking they're really awesome. But, in any case, I like Vim a lot!
And, this photo was actually taken about 35 seconds before I clocked myself in the back of the head with, I think, this one of those. These are "poi", and I don't use them anymore.
So, my hope is that what we've got in this group is going to be technical people, or hopefully-technical people, people who want to become technical. This will generally be programmers, or system adminstrators, or even people who just do front-end design with CSS or HTML, as these are text-based things. But, another text-based group that sometimes people don't think of as possible targets for using Vim is writers. Because, of course, they're spending a lot of their time working with text, and they could actually benefit from this.
But the one thing you probably shouldn't be if you want to use Vim, is afraid to use the computer. Some people are actually kind of nervous when they sit down in front of the computer, worried they're going to break everything. You kind of have to be a little bit willing to go at it with gusto. At the very least, you probably shouldn't be scared to get into the command line, because, by default, Vim uses the command line a lot. But, there is actually a graphical version, so if you're not super comfortable with the command line yet, you don't necessarily have to count yourself out of the possible target audience either.
And so, this is a very unreadable (because it's so tiny) window of Vim here. This is my personal setup. As you can see here, it's just entirely text-based. And it is what they call a "modal" text editor, which means you don't just open it up like Notepad and start writing. If you just open it up and start hitting some characters, you might get some really odd behaviors, you have to enter the correct "mode".
There are multiple platforms that have support for Vim. It's not just Linux, it's not just FreeBSD, or any of those "server" systems. There's also Windows versions, and Mac OS X versions that are, as I said earlier, graphical. And, like I said earlier, it is command-line based. So, for instance here, this is just running inside of a Terminal window. So there's no buttons or anything to work with by default. The graphical version includes a few menus and things like automatic mouse integration which might make it easier for certain people. But, by and large, it's pretty much the same between the two versions; it's just whether or not you have to invoke some command on the command line to start it up, versus clicking on an icon.
So this talk, as you might have figured out by the fact that I, in a Vim user group, was just saying "What Even Is Vim?", is going to be pretty beginner level. So, I don't know how familiar everybody is with it, but there may be some things that I cover, such as just general Vim motion idioms, which you may already know if you're an intermediate to advanced Vim user already. And then I will cover a few general-purpose Vim motion commands. These are going to be some commands which should be workable regardless of the language that you happen to be using at the time. Some Vim commands are better for certain languages than others. So I'm just going to give some that should be good in general.
And part of the reason I don't want to go over too many of the commands right now is because they're so many of them, that if I tried to go over all of them, there would be too many to remember at once, and it would be such a mountain of information that it would be almost better not giving a talk. But, there is inline help inside of Vim. If you've every run Vim, you'll have quite-frequently run across the ":wq" command to save and exit, or just ":w". You can run other commands, and one of them is an inline "help" command, this ":help motion.txt" will actually open up the motion command help. My hope is that at the end of this talk, if you weren't able to understand it already, that this should give a much better base for learning in the future. And I'm gonna try and go relatively slowly, but if I'm going too quickly at any particular point, or if I'm mumbling or whatever, you can feel free to raise your hand and be like "please stop, I didn't catch that."
As far as how this talk will go, I'll have a terminal window on the right here.