10 ms·
Vim commands are more than just typing. It’s searching, deleting, replacing, selecting, moving entire lines of code. I can get to any location in a massive cod
by xwdv 7y ago
Vim commands are more than just typing. It’s searching, deleting, replacing, selecting, moving entire lines of code.
I can get to any location in a massive codebase within seconds. I can drop the cursor to any character I see damn near instantly. I can construct entire macros on the fly and repeat them endlessly until I’m satisfied and destroy repetitive tasks. I can move entire sections of code to anywhere else I please, just tell the line numbers and it’s done. I don’t even have to open the files. When you’re working really fast in Vim it’s easy to get a high from the amount of code you are slicing through.
In short, classical editors are like a ball and chain for developers trying to get shit done, and I cringe every time I see a developer using a mouse or trackpad while working. It’s so slow, so inefficient, I can’t stand it anymore. I need vim-like shortcuts in every application I use.
- criddell 7y agoYou say it's more than just typing but then you go on to describe a bunch of stuff that's essentially just typing. I think just about any modern programmer's editor can do all the things you describe. I work most of the day in Visual Studio and I know it can do all that. For programming I think vim is handicapped somewhat because it doesn't "understand" what it's working on.
- tcoff91 7y agoThe great thing about vim is every IDE has a plug-in to emulate it. Why would I learn separate shortcuts for android studio and vscode when I can just install vim plugins?
- OGWhales 7y agoI'm trying to learn vim, thanks to this thread. How do I "drop the cursor to any character I see damn near instantly." I'm digging moving things around quickly and all that. But I don't know how to get my cursor where I want it quickly.
- tcoff91 7y agoFirst of all, I recommend that you turn on relative line numbers AND also normal line numbers. This means that the line the cursor is on will show the absolute line number, but lines above and below will show how many lines away they are from the current line. :set relativenumber :set number This makes it really easy to get to the line you are looking at. You look at the relative line number, see it's 9 lines above, so you start out with pressing 9k to jump up 9 lines. Let's say you're trying to get to an instance of the 'a' character. The character is to the right of your cursor, so you press fa to jump to the next instance of the 'a' character. However, it turns out that there are multiple instances of the 'a' character before the one you are trying to get to. So you repeatedly press ; to keep going to the next 'a' character until you get to the one you want. You've accidentally passed the one you want, so you press , to go back one. So all together you something like 9kfa;; Also related to the f motion are the F, t, and T motions. I use the t motion all the time. t and T are like f and F but they put you on the character before the one you specify. Very useful for jumping to the first character before the next parentheses and things like that. purely for putting the cursor exactly where you want it there are more powerful things like the emacs acejump plugin or easymotion for vim but they aren't all that necessary IMO.
- BenjiWiebe 7y agoI use vim exclusively for programming and general text editing, and I didn't know about relative line numbers! Thanks a lot, I think that's going to be in my .vimrc!
- OGWhales 7y agoSuper awesome! Thank you so much, this is extremely helpful.