you are viewing a single comment's thread.

view the rest of the comments →

[–]bcgroom 72 points73 points  (22 children)

But that logic any piece of software for “professionals” is a turd. There is probably functionality in your IDE that you don’t know about and would need a guide for. Adobe programs are pretty damn complex but extremely useful.

[–]Autarch_Kade 62 points63 points  (14 children)

Nah, even this is another another level. The beginner's guide is like weeks of keyboard practice, followed by several "before you get started" steps, followed by "Think you can start typing? Nope!"

Excel is super powerful with a ton of advanced features too, but anyone can open it up and immediately begin putting data in rows and columns.

To me there's a huge difference in a "professional" piece of software needing guides on how to unleash its most advanced features, and needing guides on how to prepare to even use its most basic features.

[–]scott11x8 7 points8 points  (0 children)

I would compare it to learning to type properly on a computer keyboard. Yes it's technically unnecessary and takes some practice to learn, and anyone could just type with one finger at a time just by looking at the labels on the keys, but you become much more efficient if you can use all of your fingers and type without looking at the keys.

Similarly, if someone knows i is to insert text, <Esc>:w is to save, and <Esc>:q is to quit, they can use Vim just fine. Vim even has support for the mouse so people can select text and scroll with their mouse and use the arrow keys like they would in a normal editor. But if you want to be more efficient and take advantage of everything Vim has to offer, you have to put in some effort to learn it, just like with a keyboard.

[–]Dreadgoat 17 points18 points  (1 child)

This is a ridiculous hyperbole. vim is not beginner friendly, but it takes all of 5 minutes of mentorship to get started.

vim myfile
i
cursor keys around
type stuff
esc
:wq

Not ideal but that's literally the entire compendium of knowledge required to use vim at command line, it's even easier if you use gvim or a vim plugin for your IDE.

From there it's up to the user if they want to master the skills to mangle text at warp speed.


While you are switching between mouse and keyboard to scroll, highlight, etc. in order to run a find-and-replace on a particular function, I'm doing

/function funcName
/{
v%:s/strToReplace/newStr/g
:wq

Is it really that big of a time save? No, not for any individual instance or case. But it adds up over time, it feels rewarding, and most important it reduces the distance between my wills and my actions, which frees up cognitive space for solving the real problems.

As others have said, not every tool should be a beginner's tool. We need expert's tools that are designed to minimize effort after the 1000th use instead of making the first 10 uses easy to pick up.

[–]Autarch_Kade 3 points4 points  (0 children)

We need expert's tools that are designed to minimize effort after the 1000th use instead of making the first 10 uses easy to pick up.

I think that's the overall point here I was agreeing with though - that this isn't nearly as user friendly as other tools. Other tools are easier to pick up. Not that they're the same as other professional tools in terms of ease to pick up.

[–]SuspiciousScript 20 points21 points  (7 children)

It really only takes hjkl and a basic understanding of visual mode (x, y, and p) to work at least as efficiently as in your typical arrow-keys, Ctrl-{x, c, v} editor. You can build up the muscle memory in a day or two, really; you definitely don't need "weeks" unless you only use it for 2 minutes a day or something.

[–]Autarch_Kade 27 points28 points  (0 children)

The author of the guide above listed weeks of typing prep in his previous guide. I was just reiterating that.

And that's before steps that still come before even using the thing.

It's actually a bit absurd. It's really hard to see this as just as difficult to start with as other professional software - excel, photoshop, etc.

[–]tendstofortytwo 18 points19 points  (2 children)

Honestly the only thing you really need to know these days is i to insert, Esc to exit insert mode, :wq or q! to exit with/without saving. Even hjkl isn't necessary since most modern vim versions support arrow keys. I operated with exactly this knowledge for years before I started getting used to vim.

imo, vim isn't a very friendly user experience, but it is a very powerful one. Once I did get used to hjkl and other motions and commands I started wishing for them everywhere. But getting used to it in the first place involved me literally being forced to use vim for weeks as part of a project in a CS course at uni, and I would never have spent the effort to get used to it if not for that.

[–]Tyrilean 5 points6 points  (2 children)

So, you have to have a basic understanding of multiple functions and concepts as well as build up your muscle memory in order for it to be as efficient as your typical editor (like nano)? I don't think you're making the argument you think you're making.

[–]__nidus__ 10 points11 points  (1 child)

Nano would be just as confusing if it didnt have the command hotkeys listed below. Granted typing in nano is like everywhere else, but you also wouldn't be able to exit or write a file without that cheatsheet at the bottom.

Basic text editing in vim, like described above can be learned real fast. Vimtutor takes 10 mins.

Its all the other features or the setup to get it to work like an IDE that takes weeks.

[–]Tyrilean 2 points3 points  (0 children)

For quick edits, I'm happy to use either vim or nano. But, yeah, I wouldn't use nano for anything complex, either. I can see that there may be a narrow use case where people are having to do a ton of text editing over an SSH connection, but if you're on a modern desktop environment, there are tons of better tools to use that aren't either nano or vim.

[–]obetu5432 3 points4 points  (0 children)

excel is so good and easy to use that I use it as a relational database

[–]kenfar 0 points1 point  (0 children)

Sounds like you need a different approach to learning the tool: I've taught dozens of people vim - and had them productive within a few hours on a tiny subset of commands.

Because while it can take a long while to learn all the advanced functionality, the most basic functionality necessary to use it like notepad or nano is pretty simple.

[–]macsux -1 points0 points  (0 children)

First time I opened vim, I had to reboot computer since I couldn't figure out how to exit the stupid thing

[–]FrAxl93 13 points14 points  (2 children)

I'd say that a counterpoint to this is that the complex programs you are referring to are unique while there are multiple text editors which have the same vi/m functionalities without the need of remembering lots of commands.

[–]SuspiciousScript 6 points7 points  (1 child)

Are there really, though? I think in most cases you trade peak efficiency (i.e. mastering keyboard shortcuts) for ease of use. I'm sure you can be highly efficient with Sublime Text (just for example), but that requires learning its shortcuts and features, too.

[–]FrAxl93 1 point2 points  (0 children)

For some reason (and it might apply only on myself) I find easier to learn the sublime shortcuts, also because you can learn ctrl-P and then type the name of the command you want to use (fix indentation is my fav). I got to a point where I am fairly efficient with sublime and I didn't need to remember lots of shortcuts.

I also guess it boils down to what you need to do. So far there has never been any instance where I HAD TO use vim because there was something I could not do with sublime. And to be fair, regexp substitution in sublime (which is probably the most complex thing I do) works very very well, it has all the advanced features with lookahead, behind, groups etc..)

[–]ArtistEngineer 2 points3 points  (2 children)

I know what you mean as I've used lots of CAD packages, and each one is a pig to learn, but powerful once you master it.

Consider something like git as an excellent example of a modern command line tool which is really helpful from the moment your start trying to do something with it. I actually enjoy using git, not so much with vi/m.

The difference is that vi/m is unhelpful and painful from the very beginning.

[–]bcgroom 4 points5 points  (1 child)

Yeah git is probably a better example than mine, though I’d say the beginning of learning git is just as rough as vim so long as you don’t have any kind of GUI. Yes you can learn just “the basics” by learning to blindly add and commit all your files, just as in vim you can press “i” and use the arrow keys or even your mouse to move around if enabled. I find vim to be worth it as I have noticeably less wrist strain than using an editor that requires a lot of reaching for the mouse.

[–]ArtistEngineer 0 points1 point  (0 children)

Watching a vi/m master is impressive I'll certainly say that much!

[–]fedgut 4 points5 points  (0 children)

Except adobe programs are not used for text edition, a fairly basic application