Fairly sure what I am going to say won't be popular and will probably make me lose 'face' among many programmers, but I will say it anyway in case it can help anyone who still has an open mind about this.
Around the time Windows came out I had a PC and learned how to edit files with it. I learned to select things (character, paragraph, end of line etc) using combinations like shift-arrow, control-shift-arrow, shift-end, and copy-paste with control-c, control-v. It has always seemed intuitive to me and works well.
I believe that the reason that vim and Emacs have different keys and ways of editing which are less intuitive to me is because they were created in an earlier and more primitive era. I believe those interfaces are inferior.
Now, I do use vim on a daily basis because I can use it when I shell into a remote machine and because there is almost always syntax highlighting available for any given language. So it is my everyday editor. When I want to indent, I use visual mode. If I want to copy a few lines sometimes I use visual mode, or I use the mouse and the copy and paste menu options in the terminal right-click menu. Or shift-insert to paste.
If I want to increase the indent, copy, etc. in vim, I can select/mark an area and do like I just explained. If I were in Atom, I would use the nice shift-arrow and control-shift-arrow stuff. I don't feel that it is important to be able to parameterize those operations the way he suggests, because I have adequate and/or nicer less primitive ways of doing it.
Its pretty amazing to me how the same people who can look at a web application and complain about a minor usability issue like not having an autocomplete for a search field can go into their editor from 1976 and think that all of the old fashioned cryptic keyboard interface schemes are the best thing ever.
Anyway, the only reason it can't replace vim, which he didn't mention, is that it doesn't run in the terminal, and sometimes that is more convenient.
The moment I read "I believe those interfaces are inferior", my mind started dumping half a dozen paragraphs of ranting, but that would be painful to write, so I'll just leave it at an analogy to try and make you see how you're the one being closed minded here:
That's a bit like a native Esperanto speaker saying "I don't know what's all the fuss about English being a lingua franca, I learned how to say hello and goodbye and I don't feel I can access all that wealth of knowledge people claim is available to them." Obviously they would have said that in Esperanto, but I don't know it.
"Mi ne scias kio estas tuta vanti angla estante pontolingvo, mi lernis kiel diri saluton kaj adiaŭo kaj mi ne sentas mi povas aliri ĉiujn kiuj riĉeco de scio personoj asertas disponeblas al ili."
Esperanto seems roughly as dense as english, maybe slightly less.
There was (probably still is, but I haven't been following for a couple decades) debate analogous to vi-vs-emacs among Esperantists, between word formation by composition and calquing (which fits the language's agglutinative core) vs word formation by borrowing.
That's a thoughtful post, and you shouldn't be afraid to say that something is inferior or superior (and "in my opinion" is assumed). My first programming experiences were on the Apple IIe, and it was much more similar to Windows than to vi or Emacs, and I don't believe my ability to edit files was particularly harmed by not using these editors.
Moreover, although I use vi on occasion (because it's ubiquitously installed and readily accessible in a terminal) I don't like it at all. It fails almost totally on the level of discoverability. That is, those wonderfully composable commands are impossible to discover in vi itself. It also fails at the level of giving good feedback about what you're doing right now. Finally, it fails because it's confusing because modal editing is confusing. It makes much more sense to me to use "out of band" input (like meta keys and mouse input) which is psychologically orthogonal to actually entering text. Not to mention the fact that in situations where you want to move and edit a lot, you actually add a LOT of keystrokes.
I agree that composability is a very cool feature of vi, but the negatives dominate this. (This is the reverse argument that people seem to ignore about javascript: the ubiquity and power of js absolutely dominates, by several orders of magnitude, it's weaknesses as a language and runtime.)
In any event, arguing about text editors truly is like religious argument: if you enjoy using emacs, vi, or notepad, I'm happy for you! In the end, if it works for you then it's good, and it seems rather counter-productive to try to convince people one way or another.
Things are not inferior or superior, they are only different. If you can open your mind and understand this, then you will realize vi and Emacs for what they are.
I get the exact opposite sentiment reading in this thread. Everybody seems to think vi/Emacs are perfectly superior to graphical editors.
I honestly _cannot_ believe people are still writing posts like the OP did. It's getting so old to even talk about it. Yeah yeah, nobody ever said Atom would replace vi or Emacs. They'll live forever...we get it.
You don't get it. We don't necessarily want vim to live forever. We'd love for another editor to come along and eat vim's lunch. It's just that in order to do that it needs to take the lessons that vim has taught to heart.
I keep hoping a better Vim will come alone. KDE's Kate gets closer as its Vi bindings improve, but it's still a big enough uncanny valley that I can't switch over (and I'm a KDE dev!).
I understand this sentiment, but is there really a way to do this without simply recreating or emulating vim? I can't really think of a way to compose complex, precise actions ("delete the next 4 lines", "undo changes on this line") purely with mouse clicks or swipes like you can with keystrokes.
Every GUI text editor requires a combination of a cursor and keystrokes to accomplish things like this, and they probably will for a very long time.
A text editor that can replace vim would definitely be very much like vim, and it would probably be modal and have very similar if not the same command set. This would be no more a 'recreation' of vim than other text editors today would be recreations of each other just because they all come with very similar actions, commands, and features.
Around the time Windows came out I had a PC and learned how to edit files with it. I learned to select things (character, paragraph, end of line etc) using combinations like shift-arrow, control-shift-arrow, shift-end, and copy-paste with control-c, control-v. It has always seemed intuitive to me and works well.
I believe that the reason that vim and Emacs have different keys and ways of editing which are less intuitive to me is because they were created in an earlier and more primitive era. I believe those interfaces are inferior.
Now, I do use vim on a daily basis because I can use it when I shell into a remote machine and because there is almost always syntax highlighting available for any given language. So it is my everyday editor. When I want to indent, I use visual mode. If I want to copy a few lines sometimes I use visual mode, or I use the mouse and the copy and paste menu options in the terminal right-click menu. Or shift-insert to paste.
If I want to increase the indent, copy, etc. in vim, I can select/mark an area and do like I just explained. If I were in Atom, I would use the nice shift-arrow and control-shift-arrow stuff. I don't feel that it is important to be able to parameterize those operations the way he suggests, because I have adequate and/or nicer less primitive ways of doing it.
Its pretty amazing to me how the same people who can look at a web application and complain about a minor usability issue like not having an autocomplete for a search field can go into their editor from 1976 and think that all of the old fashioned cryptic keyboard interface schemes are the best thing ever.
Anyway, the only reason it can't replace vim, which he didn't mention, is that it doesn't run in the terminal, and sometimes that is more convenient.