You make it sound like vim is a new thing. It's 25 years old. And vi is 40 years old. If you've been writing code for longer than that, then damn. I'm impressed.
> prefer a software, where you do things intuitively without needing to first learn a shortcut for everything.
Like what? ctrl + c or ctrl + v? I doubt anyone has every figured those out by themselves. They either read the documentation, or someone showed them. Or do you mean intuitive as in right click on selected text, and then click the copy option? to each their own, but I couldn't stand wasting that much time every time I want to copy or paste something.
> accepting that I must use mouse and the editing process might take slightly longer.
Kind of answers my previous question. But for me, it's not that using the mouse wastes an extra second here and there. But it breaks the constant flow of typing on the keyboard. I don't like that constant start/stop of switching between the keyboard and mouse. But you don't mind it, and that's fine. (I'm just explaining from my perspective, why people would prefer something like vim)
> visually vim looks a bit ugly to me
Everyone's tastes are different, but I don't understand this. It's just a cursor, the text you are working with, and a small bar at the bottom with some info. How is that ugly? I mean you can change the font to whatever you like.
> Like what?
Like mouse-select, copy, paste. Once learned (however that happened, however long ago), it works across virtually all OS/gui combos (except gvim without knowing vim :), and you can immediately get something done. If you're dropped down into an environment, and have to get something done, using your slow but working general methods is pretty attractive, compared to having to learn a whole new way of merely copy/pasting before you've done a single thing.
Having used vi, and later vim, since the mid eighties, it can be painful for me to sit with someone as they mouse around cutting, copying and pasting. Watching someone reversing the order of two lines, or two characters, with a mouse is really frustrating. But they're getting something done, focusing on the task instead of the how, and beyond an offer to help them with vim if they like (they usually don't), I just sit there and accept.
I like my mouse, I'm just glad it's not all I have. But keep in mind, it's really frustrating for someone to have to listen to someone else telling them "you can do this a better way!". It's just meta distraction.
If that's all that vim could do better than traditional editors, then sure, stick with the traditional editors. Learning the complexity of vim is not worth it.
But those are incredibly trivial examples. vim can do so much more than that, in a really efficient and powerful way.
It's like demanding why one should use a battleship when a tricycle can also turn left and right, and can go forward and backwards. Yes, both can do that, but the battleship does far, far more, and there are reasons for its complexity.
If all you need is a tricycle, stick with the tricycle by all means. It's much more intuitive than a battleship. But some of us need far, far more power than that.
set mouse=a
set ttymouse=xterm2
You may have to enable your terminal's mouse support, if you're running Vim in a terminal.As the quote goes, "The only "intuitive" interface is the nipple. After that it's all learned."
The word you're looking for is "different". Vim (and Emacs) have different shortcuts than what you're used to from Windows. That's because they're much older. Vi and Emacs actually predate those "intuitive" shortcuts of yours.
And like with many things our industry standardized on these days, just because it's popular, doesn't mean it's not utter shit.
I did not know this saying, thanks. This explains why I cannot work on a GUI without a track point!
I used to scorn trackpoints until my friend told me he's very fond of them - that convinced me to give it a try. They're not bad. Play with one for 5 minutes (to the clock), and you'll be liking them more than touchpads :).
Yes, but that is different, since in "normal" IDE, I dont need to use shortcuts for everything. In vim, you must learn how to select something, then how to copy it and how to paste it. In an IDE, I just select it with mouse, since in all other software I also select the exact same way, and shortcuts are only ctrl-c ctrl-v. Of course I also use other shortcuts, like F2 and ctrl-F2 for bookmarks, but normally I don't need them for everything.
But many babies have trouble latching and the mother and baby need some assistance with the first few feeds - i.e. even nipples aren't totally intuitive.
The one thing I see people cite the most when they talk about not learning vim is "shortcuts". Vim's main editing interface is not "shortcuts". It's an editing language. There's a huge difference:
https://www.youtube.com/watch?v=ZdC2ysrP-XA
(not trying to flame or boast or anything, just trying to honestly communicate my feelings here, but) Anytime I use an editor that doesn't have a similar model, it feels like trying to carve wood with a coffee mug. If that simile sounds weird and doesn't make sense, that's how it feels.
The second argument I hear is plugin/ide functionality. You can get syntax highlighting, linting, VCS integration, anything from the shell, C-Tags, plugins, in vim but a lot of the refactor type IDE stuff isn't up to snuff. I have a theory about this. In a regular IDE, refactoring manually is a pain point. This means the auto-refactor tools are more polished in IDEs. I do as many refactors that could be automated as any other programmer, but its not a pain point because manually refactoring in vim takes only marginally more thought/input than automatically refactoring in an IDE.
Not saying that IDE refactoring isn't better (it is), but it isn't a big enough productivity improvement for me to fix that versus, say, refining my vim mappings, or practicing using the git plugin vs always using CLI git, or finally integrating the tmux plugin, etc.
Now... THAT said. The onboarding process for vim is pretty awful. You either start with an austere text editor and piece by piece build it into an amazing IDE/text editor, or you start with a premade blackbox config that you are unequiped to tweak.
People can use IDEs of their choice but use real Vim for all text operations or just stick to vim like me :)
That doesn't even apply for an IDE. As a vim user I always feel lost in those at first.
Any tool with a bit of power will require familiarization. You won't get the most out of that IDE unless you learn it.
Once you have the muscle memory, you use little thought on how to mechanically accomplish editing tasks, so the intent-to-accomplishment pathway is quite direct. In the end though this may not be the case for you, even if you earnestly dove into it.
I think the main difficulty with learning Vim is that its commands are like minimal "combinators" attached to arbitrary keys, and they take exploration/use to experientially bubble up these combinators to reach "comfort parity" with standard editors. In this way Vim is like the Lisp of editors.
About the ugliness, I agree. That's why I usually use a GUI version if I can. Plus it must be reiterated that Vim is more just a text editor, not an IDE like Visual Studio. If I could use VS+VsVim for everything, I would.
I understand how pleasant it is to use a tool that you spend a lot of time in day in and day out that is beautifully designed and just looks and feels nice. I remember slightly drooling at how some fonts in a competing editor seemed to have a subtle glow. I would have liked to have that in vim, and maybe it is possible. There are some other GUI improvements that could make it look/feel nicer.
However, as a power user give me function over form any day. It's like the choice between taking a long, beautiful path vs a short, ugly one. Or maybe the long beautiful path can't even go where the short ugly path goes.
Most of the time, I'm using my editor to get things done, and done as quickly and efficiently as possible. I'm not using it to admire how beautiful my editor looks or show its looks off to friends.
If I have a choice between getting my work done in 2 seconds vs 5 minutes, I'll choose the 2 seconds. There must have been hundreds of times in my life where I've done a really complex set of editing tasks in vim (or emacs) in a couple of minutes that I know would have taken me hours and driven me insane in a traditional editor.
After learning vim (and emacs) being forced to use a traditional editor is like cutting off my arms. It's like being forced to drive a car that can go only 5 miles an hour and only make 90 degree turns. Super painful and it may not even be capable of doing what you want, and certainly not quickly, efficiently, or pleasantly. Though certainly the more sophisticated traditional editors are far better than primitive traditional editors like notepad or nano (though some people still swear by those and will not even think of leaving them!).
It's really hard to get across to people only used to traditional editors the sheer power that vim and emacs have. It's something that you really have to be a veteran of these editors to fully appreciate -- and that usually takes years.
But people are different, some prefer it this way and some not. Even on the keyboard-driven side there is a clear divide between those who like single-mode interface of Emacs and those who love Vim and hate the pianist training of Emacs multi-finger actions.
I was never an IDE guy but PHPStorm is just too good, so much time saved.
Some people will love Java and accept its verbosity, I cannot.
Now I found out about lisps, ml, or even ruby and suddenly verbosity decreased.. you need less text edition.
And even more than that, focusing on algorithms and conceptual structures makes you forget about editing, formatting, or even live check etc. You often think deep beforehand. Then type a few things, because the design is more balanced.
What's less intuitive? caw stands for change a word. This selects the word and deletes it leaving you in insert mode to type something new.
Or: ctrl left arrow, shift, ctrl right arrow, delete key.
cit stands for change inside tag (html tag) or ci" for change inside the double quotes. dit and di" work just the same and vim can be thought of as a language to work on text.
If you have a few min to spare to see why it's so powerful and not that hard to learn you can google "you don't grok vim" to get a good stackoverflow response on it.
you can learn that intuition easily by learning 'vim language' , there are no shortcuts.
ViEmu though, is fantastic.