 So hi everybody and good morning. And if you're not energized yet, hopefully by the end of this talk that you will be full of love of them, right? My name's Joe Brockmire, head of community at Percona, which isn't terribly relevant to this talk except that occasionally I actually do use them in my day-to-day work. I've been working with them for about 24 years and I still don't know everything. So the title is a little, you know, maybe a little bit misleading in 40 minutes. I don't think we're gonna get through everything, but hopefully this will be enough to get y'all started. How many folks are actually using them have used them? Okay, all right. So we'll be talking about this. The aim of the talk is basically, I wanna get people used to using them. So writing the talk, it was a little bit like this because as I said, I've been using them for a very, very long time and every time I'd write something that I think, this is a basic, this is the thing that people need to know about them, I would think of four other things that I needed to cover. And by the end, I felt like Charlie Day in Always Sunny in Philadelphia was like, okay, so you need to know this and then we're gonna go over here and this is where the grassy knoll comes in anyway. So some big disclaimers for the talk. This is just gonna scrape the surface. I'm gonna talk real fast. I'm gonna go over a lot of basics. You can download the slides as a kind of a crutch or whatever after the talk off of my website. It's dissociatedpress.net. So you can download my talk. This is a very big topic, a very small time slot. This is also how VIM works and how these text utilities work in recent-ish versions of Linux. So when I talk about utilities that aren't VIM, things like cut, unique, sort, there are different versions of those. So those of you, for example, use a Mac, you'll have the same utilities, but they may work slightly different if they're the BSD versions and not the GNU versions. And also like if you have somebody in the audience, I think was on rail seven for a bit. So the version of cut on rail seven may be different than the version on rail nine or for door 38. There is always more than one way to do it. I'm gonna talk about the ways that I do things and the ways I learn to do things, but there are probably 10 different ways to do the same things in VIM and with some of these utilities, and that's okay. Also, I'm very biased. I didn't know who was gonna show up today if it was gonna be folks who were already Linux users or who were already using VIM, but I was at Red Hat for about nine years and one of the things that we were trying to do when I was at Red Hat was to make it easy to administer systems for people who weren't Linux administrators, doing a lot of things through web console and things like that. So I didn't assume that people were already comfortable or familiar with the command line because you don't have to be to use Linux these days, okay? So here's what I'm gonna cover in very quick order. So I'm gonna talk about some very basic reasons to learn text on Linux in 2023 because again, you can do most of this stuff through a GUI for a lot of things. You don't need to touch the command line all the time. I'm gonna talk about some of the basics of piping and operators and things and then we're gonna talk about VIM and then I'm gonna get a little bit into some text utilities and then I will probably be out of time because I have 36 minutes left, okay? All right, so why do you still need this? So even if all the tools that you wanna use are GUI based, occasionally you may need to SSH into a system and go ahead and use VIM to edit a config file, to check out a log, to do something on that system. And outputs usually in text and usually what is on that system, you can guarantee there is some version of VIM on that system. You may or may not have Nano. How many folks like Nano? Only a couple, okay, that's cool. But Nano, a lot of people I know have switched to Nano because they find VIM very baroque, okay? Nothing wrong with that. Some people, no judgment, like Emacs, you know, but usually VIM is installed on a system, okay? So YVIVM, it's there. Also it's very, very powerful. If you learn to use VIM and keep going, you will be able to do stuff in VIM that you can't do in any other editor. Now, it's 2023 and a lot of other editors have in fact, you know, developed the capabilities that VIM had 20 years ago, but it's taken that long to catch up. And there are still things that you can do, as far as I know, you can't easily do in like VS Code that you can do in VIM. All right, so let's talk about some very basic stuff about text. For folks who are familiar with Linux, you have probably heard the saying everything is a file. Of course, files are files, but also the system sees everything as a file. So your teletypes on the system are seen as files. You have the PROC file system, which tells you things about your CPU, about how much memory you have. Those things, the system provides them as files, which means you can work with them as files. You can extract information as text, you can work with it. If you are old enough, you probably remember echoing commands or echoing variables to different things to change kernel parameters. It's usually, I went Googling that a little bit. I don't think it's the recommended way most of the time. Now you can usually do it with SysControl or SystemD, but you could still do that. So why this matters, everything is in a text format or most things are in a text format, and you can be a better system administrator, maybe a better programmer if you know how to manipulate these things. You don't have to a lot of the time until you get deep into debugging, deep into system administration, but it's useful to know how to do. There are three standard streams that you should know about on Linux. That's standard in, standard out, and standard error. So basically there are, everything you type in is going in through standard in. When you type in a command at a terminal, you're typing in through standard in. The system sees it that way. When you see something come out of a command through the terminal, that's standard out. It's basically piping information to standard out. If you have an error, it comes to standard error. Usually that's also directed to your terminal, but as I'll show you a little bit later, you can redirect that to other places, which can be very useful. So redirecting input and output, how many folks are real familiar with that? Most y'all, okay. So everybody knows the carrots, redirect text one way and the other. Everybody knows that two carrot will direct things to standard error and you know how to write to a file and how to append to a file, right? So if you want to append something to a file, you wanna use the double arrows there, okay? And again, this presentation I will have as a PDF that you can download off of my blog, which is dissociatedpress.net. And so you can follow along at home when you have time. All right, so let's talk about VIM. I wanna give you a really short history of VIM and VI. So VI was written by Bill Joy and it was a visual mode for the EX editor. I'm being very general. There's much more history here, but I'm being very general. That goes all the way back to 1976. Now I don't know how many folks in the room actually go that far back, but that's a long time in computing. So later on, a guy named Bram Molinar wrote VIM in the early 90s, about the same time as Linux started coming along and that was VI improved. And basically he started adding functionality because if you use bare VI, like if you use a BSD for example, I think you can still get a version of just VI. That's not very feature complete and there is a whole lot of features in VIM that don't exist in VI. Whole, whole lot. I think tabs for example were added to VIM in the early 2000s, version seven I think it was. I'm gonna take a quick drink of water, let y'all think about that for a moment. Okay, and the other thing to know about VIM that is different than pretty much all of the editors that you would use, the text editors, the IDEs, whatever is that it is a modal editor. Now since most of y'all have used VIM before, you know this already, but basically when you switch modes, you do different things. The same keyboard does different things. So in normal mode, you're actually operating on the file, moving around, copy paste, yank, all that stuff. Insert mode, you're actually writing, okay, makes sense. There's also an append mode. Depending on how you look at it, VIM has like six modes, it has three modes, it has 10, it depends on how finely you want to slice it. Visual mode, this is when you're selecting text and we'll talk a little bit more about that and then command mode is where you do stuff like search and replace and all your fun stuff, pipe text out, write it to the file, good stuff like that. Just remember too that case matters so that when you're in normal mode, when you're in other modes that typing I and typing capital I are two different things, typing a cap is a different thing. And this is just to kind of give you an idea. If you look at the keyboard, so as you're looking at the keyboard when you type, say, H, J, K, L, you're moving around like arrow keys but when you type capital H, you're doing something different so if you're a person like me who doesn't like to take your hands off of the keyboard, VIM is great because you rarely ever have to take your hands off of the keyboard. I'll tell you a little personal story about this. I started using VIM in 1999. I had a boss who decided that if you wanted to edit the website, you did it in production, you SSH'd into the site and you had to use VIM to edit the website. He was very particular about that. You had to use VIM to edit the website so I had never used VIM before successfully and fairly new Lennox user at the time. The first three weeks were hell, okay? The first three weeks of trying to learn VIM to be productive were hell. The next three weeks were okay, you know, like I started getting the hang of it, I could move around, I started developing a little bit of muscle memory. By the end of the next three weeks, I would have beaten you to death with my keyboard if you tried to make me use a different editor. Once you get really, really good at it, it's actually blazingly fast. If you are a person who can touch type at a rapid pace, writing in VIM can be really, really fast. So some modal tips for those folks who aren't super familiar, but it sounds like most of you are, escape is your friend. If you do something and you feel like you messed up, hit escape and then hit undo, okay? That will save your butt a whole lot of the time. If it has a colon in front of it, it's a command. If you're writing, you're probably in insert mode and if you hit escape, you're in normal mode and if you're selecting text, you're in visual mode, okay? Is this all too super basic or is this actually helping anybody? Thumbs up, okay, great, thank you. All right, so start VIM, I think you all probably know this, but open a terminal or a console or whatever, type in via VIM and you should see something like this, okay? Photographer, sorry. I have a superpower I can usually spot a photographer out of the corner of my eye every time. All right, so let's talk about editing. So you open a file, you open a buffer and VIM, we'll talk about what buffers are in a minute. Type I to hit insert mode and now you're typing, you're working with text. To return to normal mode, hit escape, to save, hit colon W and if you open VIM without a file, you can just choose a file name at the command mode, just colon W and whatever the file name is. Probably not file name, you probably want something a little more descriptive than that. All right, is someone beeping? Coming from that way, okay. So exiting VIM, fun story, for those of you who may not know this, the first edition of Linux for Dummies had a section on VIM, they forgot to put in there how to exit VIM. Little bit of the boo boo, missed that in the edit, missed that in when it's print and people were like, I don't know how to get out of VIM. So it's not obvious. So colon Q will help you exit VIM. Everybody would have thought of that natively, right? So colon Q, colon Q bang, the exclamation point, that will let you out without saving. So if you get into a file, you mess some things up, you don't like your changes, whatever. Colon Q bang, it won't save any of your changes, okay? Or ZQ, as I said, there's usually more than one way to do it. Some people prefer the Zs. WQ will write the current file and then quit. There are a number of other ways to quit. Control C will work, you shouldn't do it, but it will work. Now, again, I won't try to spend a lot of time on this. Hope you all will download the file, but basically this is all the movement, or not all of the movement, sorry. This is the movement stuff that you should know. So H, J, K, L, those are your arrow movement keys. And we'll talk about how to multiply those in a little bit, but those are your friends. You wanna have your hand on the home keys and that's how you can move around. W and B, move you, words. H, L will take you to the top and bottom of the screen right away. Dollar sign will take you right to the bottom of the file. G will take you to the end and GG will take you back to the beginning. And also, if you wanna go to your last edit, the back tick and a period will take you to your last edit, which is a very useful thing. I stole this from a FICO IO. They do some sort of, I believe it's an add-on for Visual Studio for VI. So this is a handy little visual guide of how these different things work and how you can move around there. So if you download this file, this may be helpful to you. Undo, redo and repeat. So basically, we're gonna make mistakes. Vim will help us bail ourselves out. So basically, you will undo the last operation. Control R will redo the last operation. If you wanna repeat something, just a period in normal mode will repeat the last thing that you did. This can be useful if you want to do a complicated operation and you just wanna hit period and do it again. You inserted some text, you're going through a file and you're adding, say, .html to a bunch of file names or something, just go down and add it several times. Ask is your friend. Any questions so far or thoughts? Is this what you all hoped for and expected? All right, all right. Modifiers and operators. So one of the neat things about Vim is that its commands are composable and as you learn Vim and you use it regularly, you start finding out that you can chain things together. So J will move you down one line. Well, if you wanna move down a specific number of lines, five J will move you five lines down, okay? You can also do something like O and drop you a new line and an insert mode. But five O will do something very interesting. It'll drop you into insert mode, add a new line, you type something out, you hit escape, you're back in normal mode and it does it five more times. That can be very useful. Let's talk about buffers and registers. So basically when you open a file, Vim is not making changes to the file, it's saving them in a buffer. And until you tell Vim to write it, it's just saving them in a swap file and if your system crashes and you come back, guess what? The swap file is still there, you can recover your work which is a pretty damn awesome thing. I haven't had to use this in a long time but if you've ever been working on something and your power went out and you didn't have a UPS, very helpful if you were ever disconnected when you're SSH'd into a server and then you drop the connection, very helpful. So basically there are also registers, I won't get deeply into this but where you can save different Yank texts. So when you copy paste into a register, you can actually have multiple registers going, not just one, okay? You can also see all of the buffers that you have open in Vim and you can have a lot of files, a lot of tabs open in Vim. You can see everything just with LS which is pretty intuitive if you're a UNIX user, right? But I wouldn't have thought of that natively to say like what happens if I type LS? All right, for some time now, Vim has also had multiple viewports and multiple split screens and tabs. So basically if you're working in a long file, if you're writing, so I used to use Vim a lot when I was writing full time. You have a 3,000 word article and you're like what did I say at the beginning? What did I promise people when I started writing this article so I can write the conclusion and be, you know, like remember what I said? You can split it and look at two different parts of the file at the same time, which is very, very useful. You can split file name and have two different files in a split so that you can see another article or another code or whatever that you've been working on makes it real easy to sew, for example. If you want to copy from one config file to another, the same things can be very useful. V-split does the same thing. I imagine most folks these days have fairly wide monitors, right? So V-split is a lot nicer if you want to see two files side by side. I've got a nice 40-some inch monitor at home so like when I'm working on several things I like to just give the terminal everything and just do several splits. In Vim, I cannot do the splits. I'd be in the emergency room but basically, yeah, you can split that up and see everything that you're doing, all right? So let's talk about copy and paste. So basically Vim refers to copying as yank. I prefer yank but basically so you can yank text into a register and you can put it somewhere using a P. So if you use lowercase P, remember these things are different. It will put it after the cursor and P will put it before. So this will be very helpful to use when you're picky about where you're putting your text. Search and replace in Vim is super powerful. Now I'm not going to get into but it does support regular expressions. I suspect most people are familiar with the expression. I have a problem. I'm gonna use regular expressions. Now I have two problems but basically you can use regular expressions to match text throughout a file with Vim. It's slightly different than if you're used to regular expressions in certain other programs. Vim's interpretation of regular expressions are a little bit different. Forward slash will move you forward through the file. Easy to remember. Question mark will move you backward when you're searching for a string. So if you wanna go back through the file to find something, you can do the question. If you wanna search for some of y'all are programmers, if you wanna search for a variable name that you happen to be using right now, you wanna see, hey, have I used this variable in the file before? Hit the splat and you'll see whether that exists in the file elsewhere, okay? Or it will help you move through the file and find every instance of something. In will take you to the next instance. So you've searched for something, hit in, you'll go to the next instance, P will take you back and it'll let you know when it's circled around the file. Search and replace, again, really powerful, command S string, new string will help you replace it, tack a G on the end, it'll replace it globally. By the way, when I say globally, I mean globally, you have 10 files open in Vim, you can use G to replace through 10 files. So again, it gets really powerful because you can search and replace not just through one file, but a whole bunch. When I worked at Red Hat and was managing the blog, we had some things where we needed to move from WordPress to Drupal. And I was able to edit the SQL directly to remove some images that were breaking when they were trying to import into Drupal. And using Vim, I did something they thought was going to take a day in about five minutes. They were like, oh, this is gonna take forever for us to fix all this. I was like, give me the SQL files. Okay, here you go, try that, they're like, that worked. All right, you can use the backslash to replace forward slash. So you have to escape that if you want to find it, search for it or replace it, okay? All right, deleting text. So sometimes you wanna delete text. X will delete text under a cursor, D can be used to delete larger sections. So D3L, for example, this is again where you can use operators. That will delete three characters to the right. You can give it numbers, you can give it movement commands, you can combine several different ideas into one command that will rush through the file and do operations. Again, I find them, it takes a while to learn all these things, but you can move like lightning through editing. Never have to touch the mouse, which I find to be a major feature. And then, them also thinks about text in ranges. So seven comma 10D, for example, will delete lines seven through 10, okay? All right, working with ranges of text. So if you wanna see line numbers in Venn, by the way, colon set number, we'll give you all the numbers if you wanna get rid of it, set no number, okay? Five comma D, everything, right? Fifth through 10th lines. If you want to write just a few lines to a file, give it a range, W, file name, it'll write those things to a file. This is really handy if you're moving through different things. You've got a log file open, you're like, I've gotta send the support folks these 10 lines. You just, and send them off, right? Any questions, comments, thoughts? Okay, all right. All right, if you want status of what you were doing and where you were at in VEM, it shows a line at the bottom of the file that gives you your status and what you're doing. F will show you the file status, including the position that the cursor is at. G control G shows you the exact, exact, sorry, placement of the cursor by line column byte. So it can be very helpful. LS will list all the open files in VEM. I think I covered that once. This kind of goes back to the Charlie Day picture. It's like, okay, we're all over here. So, all right, selecting text in VEM. This is really cool, I think. So you set V in your visual mode to select cursor by cursor, tick, tick, tick, tick, you know, you can search like that. V will do the same thing, but by line. So if you wanna select lines of text, capital V will do that. Control V, you can select whole columns of text. So for example, you have a file that you've copy pasted from somewhere and it's got five blank lines at the front of it, right? Control V, trim that right out. Easy peasy, okay? It's also good for if you're working with structured text of some sort, if you wanna go through and cut out one column of text, okay? All right, let's talk real briefly. You can customize the heck out of VEM and we don't have time to talk about all the ways that you can customize VEM. But if you prefer a GUI, there's GVEM. So you will actually get a nice little menu that will show you a lot of things that you can do. This makes VEM much more discoverable. So if you like a GUI text editor, you can open up GVEM, install it, open it up and you can actually do your normal file, edit menus and everything and it will show you the commands that you would use in VEM. So that's a really discoverable way to learn VEM. Easy mode. All right, so let's say you're a nano fan. You're not a fan of VEM or whatever. You can actually start VEM with the dash Y option. So you have to SSH in if they have it installed. So for example, this morning, this is a Fedora box that I don't use terribly often and I went to do this and I found out that actually it only had the minimal VEM package install. So I had to install a few extra things but once you install them, dash Y will give you easy mode, okay? External commands, while you're in VEM, if you don't wanna leave the editor, you can do command SH and now you're at the command line, okay? You can also execute external commands and get the input with bang, okay? Mappings will let you, if you do things over and over and over again, you can actually set up mappings in your VMRC so that all you have to do is I used to have a bunch of, when I actually still had to edit HTML files back in the day, I had a bunch of commands that I set up with comma P, comma N or whatever to give closing tags or opening tags for things or to start things like that. So it saved me a lot of typing. You can also set up abbreviations. So for example, 2008, 2010, I worked for Novell as the OpenSUSA community manager and OpenSUSA is kind of a pain to type. So I just set up an abbreviation for OpenSUSA so it would always be correct. All I had to do was type OPE and it would just give me OpenSUSA, all right? I've also written a lot of articles about VIM over the years. So if you go to this URL, dissociatedpress.net, slash tag slash VIM, you can find a bunch of the articles that I've written about VIM there and those get into mapping and using folding in VIM which is a really powerful thing. You can actually, if you're familiar, for example, with a spreadsheet where you hide a bunch of columns, you can do the same thing in VIM with lines of text which is a fairly powerful thing. If you wanna customize VIM, while you're in the session, you just wanna set, for example, line numbers or highlighting or no highlighting. The default on a lot of distros is when you search for something, it will highlight every instance and it will keep it highlighted and I find that distracting. So I turn on no highlight, for example. You can save these customizations in your .vimrc, that's in your home directory .vimrc. Again, depending on your Linux distro, this may or may not exist. I don't know if Mac OS has that by default or not, I haven't actually looked. And there are also plugins and scripts that will extend VIM. So if you go to VIM.org or VIM Awesome website, they have a number of scripts and things that are super, super useful. So if you are a programmer in a certain language, there are probably scripts that will make it easier for you to do that work. If you do a lot of HTML or CSSS, there are scripts, CSS, there are scripts for that. All right, let's very quickly talk about beyond VIM and some of the utilities that you can use at the command line. So you can do a lot in VIM, but you can't really do everything in VIM that you might want to do for Linux system administration. Most of these tools, so most of these tools were invented with the idea they're gonna do one thing and one thing very well. Now, a lot of the GNU utilities over time have actually added in features that are present in other utilities because they just wanted to be able to access it without chaining things. And I'll show you a little bit of that. So for example, head and tail, how many folks are familiar with head and tail? Okay, all right. So basically you all know that you can use head to see the top of a file. You can see tail to see the bottom of a file or you can follow a log file while it's running with tail, which is very useful if you're trying to see something happening in real time. And of course, it's 2023, so we all have lots of monitoring solutions that do a lot of this stuff for us, but sometimes the old ways are still good. And if you wanna see the middle of the file, you can combine head and tail, pipe the output of head to tail and snip off basically the bits that you don't want so you only see one set of lines in the middle or something like that. All right, cat and tack. These are some of, you will see lots of people get very angry on sites like Stack Overflow for unnecessary uses of cat. I will not judge you. Use cat, it's fine. Basically, so cat file name will send the file to the terminal so you can examine that. Cat file name one and two, direct to a file. Now you've concatenated those two files into one file or created a new file with the contents of both, I should say. Cat in, we'll show you the line numbers. And GZ cat will let you operate on zipped file. GZipped file is the same way you can do with cat, which can be useful. Tack does the same things, but in reverse. Sort and unique are some of my favorite tools. Sort does what you expect. It goes through and sorts lines by alpha numeric order. Unique will remove duplicate lines. So you can combine these things to do some cleanup of data in different forms. You can sort a file with a bunch of names and make sure that they're in alphabetical order. You can sort them by whatever, okay? Sort you, and this is like what I was talking about. Sort has actually added some of the unique features over the years to do the same thing. So you don't actually have to pipe to unique all the time, except that they operate just slightly differently. So it depends on what you expect to happen. Cut, that will cut a file by specific parameters. So for example, if you want to just print out a username out of the, you know, something out of Etsy password, you can set a delimiter and cut out just a certain field or several fields in user password or Etsy password to see what shell people are using or something like that. It's very good for using, for structured information and logs. Maybe looking through your fail log to see what IPs are coming through and, you know, trying to SSH into my machine. Where are those things coming from? Grep is your friend, get to learn Grep. Grep is very nice. It's a search engine for your command line. So for example, you can Grep Beatles albums.text and you can see how many Beatles albums you have in your record collection or you can chain a bunch of things together. So for example, if I want to go through my auth log and find the fail log, find how many people have tried to SSH in his root and I want to figure out what IPs I want to ban. I just do that. And then I get a list of IPs, non-repeated, in order that I can add to whatever my firewall is. If I'm not already using one of the tools that just automatically ban people trying to SSH too much. And finally, I want to mention Pandoc because this is a Swiss army chainsaw that everybody should be using. It is a wonderful, delightful tool. Basically you can use Pandoc to convert all sorts of text into all sorts of other texts. So if you have a markdown file and you want to convert that to a word doc, you can use Pandoc. If you want to convert something into latex to make it look nice, scientific, papery and pretty, you can use that to write in markdown because who likes writing in latex? Convert it to latex and then send that off for really fancy formatting and printing. You can use it to convert a word doc into markdown to edit. Sometimes it gets a little bit lossy. It's not always perfect. You can convert things to EPUB. You can convert from like a word doc into an EPUB. It is an amazing, wonderful tool. At work, often when I have to write something of first draft, I will write it in Vim in markdown and then I will send to Pandoc and DocX and then into Google Docs to actually share with other people to collaborate because markdown files are not so great for collaborating and editing with other folks, but they're great for a first draft if you like to type in the terminal. And that is the talk. And I actually, oh my gosh, got through that with five minutes to spare. I am stunned. Any questions or comments or? Yeah, if you do have a question, I've got a mic here, so. This is the quietest group. Is it really, was it? Okay, over there. I was gonna say it was Thursday night that hard. Did you party all that hard at the aquarium or? Yes, okay. He's like, could you talk a little bit quieter please? Thank you for struggling out to make it to the talk though. I appreciate it. What would you say are the things that you can do with Vim that you just can't do with any other editor? Well, like I was saying, as far as I know, cutting a text in columns, I have not found another editor you can do that, except maybe something like VS Code that has a Vim mode. But I haven't seen that feature in other editors. I think by now, there are probably a lot of things you can do in other editors, but it's a lot harder, ironically enough. Like it's hard to learn how to do a lot of things in Vim, but then actually replicating that in another editor gets difficult. But yeah, that's the one that leaps to mind right away. There are a lot of editors, you know, the modal editing is something that most editors don't do, except that most editors now, or many editors, popular editors have a VI mode, although it's usually almost perfect, but not quite perfect enough that if you are familiar with Vim, you hit the wall with like one or two things. Oh, right next to him. All right, he's already got it. Real quick question. Sure. So let's say you're working with a coworker. They say they know how to use Vim. What is a nice way of saying, maybe you need to learn a little bit more when you see them do colon WQ bang. I'm sorry? When you see the, so you have someone that says they know how to use Vim, you're working with them as a coworker, they're sharing their screen, and they use colon WQ bang. What is a good way of saying maybe you shouldn't put that bang after doing a right quit? Or have you encountered that before? I usually don't worry about correcting people if they're achieving what they're trying to do. If they achieve something unexpected, then I basically just let them do what they want. Because I don't get really hung up on, so I was an English major and I'm an editor and I have learned to let things go. Cause if I didn't, I'd be insane by now. All right, yes sir. Hey, thank you for the talk. Yeah. I'm definitely looking forward to looking at the slides after and seeing if I can try my hand again. So as you were given the presentation, I was thinking about the reasons why each time I've tried to learn Vim, I have abandoned or what are the sort of things keeping me out of it. And I was wondering if you had like great sort of counter arguments against it and sort of maybe these are shared concerns by other people as well. I'm sorry, can you say it? Maybe these are shared concerns by other people as well of like why they are perhaps not learning Vim. So I was thinking like a few things, right? One is that I find that certain languages and certain frameworks, I just have their own IDEs and like Xcode, for example, I'm thinking and Apple development and so on, where you end up, for a certain part of the work that you're doing, you have to end up going somewhere. Then you're gonna really, really miss being able to be a super user in those things. And then I was thinking the cognitive overhead obviously of this is high. And I'm generally as a designer always trying to reduce cognitive overhead and trying to build a tool which can be muscle memory, can be a play role in that. But the biggest thing was as a programmer, I find programming speed is different than typing speed. Like I'm programming when I'm cooking and when I'm showering or whatever. And also when I'm doing the writing itself. And so for data processing or data entry and so on, I can imagine using those tools would be amazing. But I wonder if programming is the skill that would benefit the most from this or perhaps not, because you're actually, you do need pauses to think about things and it's all right to be slow. I wonder if they have like, you have like really good arguments against people who are just like, like I wanna learn this, but I feel like the cognitive overhead is too high. Yeah, so I'll try to summarize your question is basically like, what is the argument for using them versus not? And I think, so my suggestion is if you work on Unix-like systems, you should have a baseline understanding of them. So you should know how to get in, get out, make some basic edits if you're in a hurry. If it isn't your jam, if you live in VS code, if you live in some other IDE, use that IDE, but be familiar enough to them if you have to SSH into something and unsnarl something that you can do that. So I'm not up here arguing that everybody should drop your favorite tool today and learn them because I like it, I've learned how to use it, but if you are productive in whatever your, what's your preferred editor? It's everything in JetBrains, VS code, X code and other things, because I have to based on the framework that I'm using in the language and C-Lion and so on, right? Okay, so you're doing it right. You're using things that work for you at the right time. My only argument again is like, have a baseline understanding of these things and know what's possible, right? Because I'm also a big fan of like, I've learned so many things and then forgotten how to do them in Vem because they aren't just at this time particularly useful to me, but I can Google that stuff and find it again and pick it back up. So like Google is your friend or at least it was before it became an SEO wasteland and you can find how to do these things over again. So thank you very much. No problem. Yes, sir. For intermediate users or maybe it'd be more accurate to say like highly functioning amateurs, what subjects or what portions of Vem do you think would be a good direction to learn in once you have the basics of Vem down? I think it depends on your use. So, you know, if you, like I used to do most of my writing in Vem, so I was working with pros more than I was working with scripts or code or things like that. So for me, the parts of Vem that were the most useful were the things that made me more productive as a writer, figuring out how to use Vem with spell check, figuring out how to use Vem with, you know, tools that helped me make sure that I was on the right word count and things like that. So if I was working with SQL all day, then I would probably go in a slightly different direction. I would look for some of the plugins and things that make me more productive as a DBA or something. So it really depends on your use case. I think learning, if you're working with a lot of text and things, again, some of the stuff that I mentioned around mapping, some of the things I mentioned around abbreviations and around folding files and things like that I would look into. But really, I think it boils down like I was saying is if you feel like you're doing something and it's taking you too long, Google it and you will probably find out that you can do it in Vem faster. So it's possible, just you have to figure out how to do it. Well, so like the thing that I, so there are portions of Vem that people don't even know are available. There are portions of them I don't know are available. Like for example, like text objects I've learned recently about, I can't really get, I don't have it working well for me, but like are there hidden areas of Vem that you think are like the gems that make it shine, make you really productive? Yeah, I mean, I wouldn't call them hidden but I didn't learn about abbreviations and mapping until I'd been using Vem five, seven years. So things like that. And I don't know what people don't know. It's like, Vem is like an Ikea store. Like there are probably people who know one area of the store real well. Like I know where the calyx shelves are kept and I know where to find this, but like dang, if I could find shower curbs, but they sell them, so it all depends. So, all right, I think I'm a bit over time actually, but I don't know when the next talk starts. All right, thank you everybody.