Mouse doesn't have an undo button.
I use the mouse a lot actually, no rodent allergy here. It's not as powerful a tool, it's just not, but it's versatile and literal, the multitool of the UX: I can always click my way to the state I need if all else fails.
Your keyboard does though, as probably does the GUI of your editor in a toolbar or menu item. It isn't like you have to use only the mouse. The mouse was meant to be used together with the keyboard, not as a replacement.
There's a menu item for Undo in most GUI applictions. But who has time? If you can undo from TUI vim without a keystroke, I don't happen to know how.
There's too much faith in your editor. Also. A mouse is a precision pointing device with some tools built in. By the time you've counted how many lines and characters you need to jump in a specific direction, I've already placed my cursor there with a mouse and proceeded with the task I needed to perform.
Because there's no dichotomy between a mouse and a keyboard as vim users would have us believe. These are two tools that people use, effectively, and together.
Also C-u allows multiples of whatever you want. I can move say, 19 lines up with C-u C-u C-p C-u C-p C-n (move up 16 lines, move up 4 lines, move down one line) and it can be quicker than you'd think - there is a cost of moving your hand to and from the mouse/trackball.
If you know it's 19 lines exactly, C-u 1 9 C-p.
It can be quicker, depending. For precise selection down to the character where gross markers aren't present, yeah, I deffo go with the mouse.
I'm agreeing with you here, just adding a perspective.
Or, you know, one click with the mouse. Because sane people don't count lines and characters.
For imprecise text scrolling a regular PageUp/PageDown will be faster than calculating the number of lines you need to go up/down. For precise random access nothing beats the mouse. Unless you're in a structured text your editor understands. But then, again, there's no mouse/keyboard dichotomy.
Jesus. I use mouse and keyboard as what's best for the task of that moment. In some cases it's a faster to do some complex things using a keyboard, at others, I pick the mouse. Depends on what I'm doing, how well the emacs commands fit that task, how tired I am etc. I'm talking from many years experience. Get a couple of years solid emacs under your belt then we can talk because evidently you have little to none.
https://www.reddit.com/r/programming/comments/6h1geu/is_the_...
linked to
Yes. In some cases. Not in the bizarre "let's do arithmetic to figure out how to jump to a line", which is exactly what I was responding to. No idea what got you so worked up.
> Get a couple of years solid emacs under your belt then we can talk because evidently you have little to none.
Ah. The person accusing me of dickish comments goes for the jugular and devolves into personal attacks.
I had two years with emacs. In the end I was very unimpressed, and switched to, drum roll, IDEA. That I use primarily from keyboard, by the way.
Type it for me. dib.
C'mon.
I'm not a member of the ratpoison squad, and use vim commands because they are eloquent. Sometimes that's fast, sometimes it isn't.
I use a mouse because it is versatile and I'm not competitive at vim golf or trying to be.
dib is great though, right up there with ddO.
> Type it for me. dib.
Ok. I took the bait and typed it. Fro the looks of it found the next matching set of parentheses, deleted content between them, and placed the cursor between them.
I'm.... supposed to be impressed by this random action of destruction?
> dib is great though, right up there with ddO.
Delete a line and insert one empty line? (As far as I could deduce from typing it several times).
But at this point we're veering into the territory discussing weird Vim commands :)
--- offtopic ---
IDEA's versions for this are, on a Mac:
dib:
- Option + Arrow Up to semantically select groups of words. Where "semantically" means "depends on the language". Atrribute value -> attribute value with quotes -> attribute_name="attribute value" -> tag etc. if it's HTML. Value -> declaration -> block -> etc. if it's a programming language (in reality more complex than that)
- Backspace to delete
ddO:
- Cmd + Backspace to delete line - Option + Cmd + Enter (insert line above) to insert new line in place of the deleted one
I use di" more often but it's the same thing really. fnCall("a| string"), `di"` lets me replace the string, `dib` to replace the argument (all of them ofc if there's more than one).
If ddO isn't available, granted, Cmd-right-backspace will clean up just as fast. Or Cmd-left-delete if you have both keys.
> `dib` to replace the argument (all of them ofc if there's more than one).
I prefer editors that are aware of context :)
Are there specific actions that might be faster than mouse in vim? Yes.
Does it mean that vim is always faster? No.
Does it mean that there exists a dichotomy between keyboard and mouse? No.
Yes. You don’t have to move your hands away from the home row, you don’t have to do some random moves with your mouse to locate the pointer. Vim is pretty much always faster. The important thing here is not the speed though - who cares if you spend 2 vs 5 seconds to select a paragraph anyway. It’s just that vim has much more convenient and most importantly precise way to interact with text objects, that’s it. Precision is the key.
> Precision is the key.
It's funny how you say this and dismiss an actual precision pointing device. It's also funny we are in a subthread that shows how to do arithmetic just to move up and down a certain number of lines and precisely position cursor where it's needed.
Also, a good article on keyboard vs. mouse someone linked in the thread: https://danluu.com/keyboard-v-mouse/
I believe S or even cc is more succinct
I use ddO because I use dd and I use O, while I've never gotten 'conceptually fluent' with using the c range to do delete-then-edit. I know it's there but I don't use it.
With a mouse I can select text between brackets and delete it, with vim I can tell the editor to do that.
Well, what's the difference?
The difference is the editor won't accidentally delete one of the brackets ever. That's not possible with the mouse. That's possible with the keyboard.