Having grown up with a mouse playing fps/rts games, I don't really get the hate. A mouse is an excellent tool.
Having grown up with a mouse playing fps/rts games, I don't really get the hate. A mouse is an excellent tool.
- Repositioning the cursor by incrementally searching for the word you want to move to is more accurate, quite fast (3-4 letters is virtually always sufficient to find the word in question), keeps you in the text / document "head", and leaves your hands on the keyboard.
- Yank (y) + movement (w for word, ) for sentence, } for paragraph, 'yi<modifier>' for copy within marks (quotes, braces, angle-brackets, parenthesis, etc.) is also amazingly fast.
- Visual mode can be used to select specific blocks of text where necessary.
- If I want to select specific fields from a file, I'll usually either use tools for that purpose (cut, sed, awk), or read in the entire file and edit it down from within vim. The tools-based approach means I can reproduce the task readily if I need to do it repeatedly.
And finally, where I'm dumping text from some GUI app to vim ... it's still usually easier, faster, less error-prone, and more reproducible to grab the entire screenful of text without specifically selecting what I want (e.g., C-A or Cmd-A (Mac)), and then trim to size within vim. Again, vim's tools permit working with text as text rather than with text as a GUI presentation.
I'm not saying I never use the mouse for text selection, but it is far less common than you might think, and much more cumbersome.
In which case I'd agree, if you've internalised that mechanism.
You might struggle to use a mouse (lots of folks do) but for those of us that grew up using it as a much more accurate pointing tool... I'd wager none of the things you've listed present much of a challenge or thought.
Like this:
>it's still usually easier, faster, less error-prone, and more reproducible to grab the entire screenful of text without specifically selecting what I want (e.g., C-A or Cmd-A (Mac)), and then trim to size within vim.
That's funny - I found it incredibly quick and easy to simply select that portion of your comment with my mouse. I didn't have to trim, or take extra, or think about it. I just selected the content I wanted with the mouse in about a quarter of a second.
2. Text-based selection and interaction work at the context of text. It's really hard to express how powerful this is if you've not internalised it.
3. On many GUI-based devices, the mouse is no longer the mouse, but the finger. This raises a whole host of additional issues:
- You're now covering up what it is you want to select.
- Your selection is no longer based on a single pixel (the apex of the pointer itself) but a region.
- There's the inherent ambiguity between selection and movement. That is, when, where I'm touching the screen, do I intend to scroll the display and when do I intend to select or interact with elements on it? In over a decade's use of touch devices I've yet to see either hardware or software which isn't subject to this failure, constantly.
- Hardware keyboards are highly effective for text input. (I'm writing this on an Android device with an external keyboard. Touch keyboards ... suck and blow, as the saying goes.)
You might struggle to use vim (lots of folks do), but for those of us that grew up using it as a much more accurate text-manipulation tool ... I'd wager none of the things you've listed present much of a challenge or thought.
The point of vim (or Emacs) is that those keystrokes simply become internalised. I don't think through actions, they simply happen.
In a GUI, I'm constantly fighting the interface.
________________________________
Notes:
1. Along with a whole host of other editors, virtually none of which are currently extant or readily available: Wordstar, Mac Edit, MacWrite, DOS Edit, WordPerfect, AmiPro, the TSO/ISPF editor, VAX EDT and EVE, emacs, multiple generations of MS Word, Notepad, MS Write, the whole StarOffice / OpenOffice / NeoOffice line, etc. Vi/vim's pretty much always present, always works, and has evolved incrementally over the 30+ years I've used it such that I'm never faced with the prospect of discarding accumulated technical-knowledge capital.
Yes, the first few weeks were ugly. Steep learning curve. High payoff function.
I'm not sure, emacs by default runs in a graphical terminal and has features that are often easier to use with a mouse, like tab bars or mode line buttons. It feels more at home to me there than in a text terminal, even if the mouse can work with either.
I hear bicycles sometimes come with training wheels.
How would you distinguish an awareness of tool strengths, and a recognition that for the specific use in question, keyboard is generally faster / easier / more reproducible?
Because really, that doesn't sound like hate to me. It sounds like proficiency.
Or is there perhaps a hatered toward proficiency?
You think you're proficient - and hell, for your workflows you probably are.
I'm telling you - I spent two years in Vim (it's a phase) I know how to use it just fine, it just didn't end up mattering that much to my day to day life (It turns out I rarely just slam something out on the keyboard non-stop).
To the point where it was basically a wash on performance: small bump in editing speed, HUGE loss in hardware compatibility and flexibility. To the point I eventually stopped because it made pair programming a complete pain. Hell, I probably still have the old copy of my config & vundle setup somewhere in github - but it just DOESNT matter.
You've locked yourself into a world where you seem to think text manipulation is a big part of the day (and who knows, maybe you write novels or do spreadsheet manipulation all day, and it is!). But for me... I spend the vast majority of my time thinking/planning/debugging/discussing/researching/etc... Typing was less than 1% of all the time I spent at a computer. If it turns out I'm actually spending 1% instead of the 0.99999% I would using just vim.... who cares? Just seems to be you.
When I need to do heavy-duty text editing, especially of any kind of a repetitive nature, I transfer contents to a vim session and do the work there. Even on Android. (Thank you Termux, the One App on Android That Does Not Precisely Suck.)
You seem to think I'm making any number of statements I'm not. Specifically, I'm not stating that:
- Mice are useless. They're helpful for focusing the terminal window into which I'm typing. Or playing games. Or using graphics and audio software, often. Or within a web browser (though I also use text-based terminal-mode browsers extensively).
- That everyone should use vim. Emacs users are also permitted to live. And yes, both tools have, as I've noted, steep learning curves, but that comes with a high payoff function. There are a tremendous number of people who simply don't have high technical literacy, or even functional literacy. See my "Tyranny of the Minimum Viable User" (https://old.reddit.com/r/dredmorbius/comments/69wk8y/the_tyr...), and studies of US adult literacy rates (https://nces.ed.gov/pubs2019/2019179/index.asp). Neither of those are elitism, they are an acknowledgement of the cognitive landscape and a realisation that the overwhelming majority of people will not and/or cannot use advanced tools.
- That I don't use other editors / word-processing tools / development tools. I have, and some are listed here: https://news.ycombinator.com/item?id=31771672 But having learned vi / vim, and having had it available on the majority of computing environments I've used over the ensuing 35 years, it is the tool that I, personally, find most useful and efficient. I also* don't spend the bulk of my time actually typing text, but when I am, vim most gets out of the way of my actually doing so. Vim's design philosophy is that even when you're in the editor, most of your time is not typing, but editing (command mode), and that is in fact the default mode of vim. You leave command mode to insert or otherwise add or modify text, then return to where you can read, search, or make other adjustments.
Finally, there's that efficient use of time thing. It turns out that over a 30+ year career the hardest parts aren't learning new tools, and as noted, many people seem to have a strong resistance to actually learning vim, but forgetting the old ones. As I've gone through multiple generations of computing platforms (Commodore PET, CPM, DOS, Windows 3/95/NT/etc., VMS, MVS, Apple II, Mac Classic, OSX, PalmOS, iOS, Android, ...), what's struck me is how non-durable much of that knowledge has been. Ironically, one of the first computing platforms I'd been exposed to was Unix (on teletypes no less), though it was another decade or so before I was truly using it. And again, that knowlege has built incrementally over decades with very minimal resets.
Vi/vim being amongst those jewels. Your "phase" lasted two years. Mine's lasted 32. Vive la différence.
And, moreover, why does what works for me bother you so much?
The two or three weeks I struggled as a first-year uni student have payed off more than virtually anything else I'd learned in my years at school. Seriously.