The current front page example is using 'z' to "redraw the cursor". I know what all those words means, but put together they are complete jibberish. Looking at the gif, it appears that redraw is VIM-speak for scrolling.
Also "z doesn't do anything on it's own. But it pairs with a number of other things. It is used for redrawing the screen, saving and quitting, as well as manipulating folds." doesn't sound intuitive at all.
At any rate, I never spent much time memorizing keys. I'd look up a thing or two, apply it, and it'd just sink in.
But Vim isn't about being intuitive, it's about being efficient. Once it 'clicks' you will be able to express incredibly complex text manipulations in only a few keystrokes. And with configuration you'll build the most powerful but comfortable environment that you'll miss anywhere else.
b - move cursor back
w - move cursor forward one word
p - paste from buffer
u - undo
etc.
I would not argue vim is intuitive as a whole. However, there are certain parts of vim that are extremely intuitive.
d: delete
c: change
y: yank (copy)
v: visually select (V for line vs. character)
It's also why I added the -ish to my comment (editors can be very polarising), but I feel many of vim's basic editing features are very intuitive
Edit: https://danielmiessler.com/study/vim/ It's where I learned the command meanings and started to understand vim in a more intuitive manner
:10d - to delete line 10
d99d - to delete next 99 lines
:10,99d - to delete lines between 10 and 99
:-4,.d - delete from 4 lines above to current line
this also works with other commands
Anyone fancy playing vimgolf? http://www.vimgolf.com/
being the obvious one..
That said, I had my annoying fifteen seconds when I first learned it, then just used it as intended. Honestly, my fingertips do the how-to thinking these days, and my brain does the what-I-want thinking.
Also, I think `z` is a fairly bad example, because nothing really starts with `z` and in some ways it's just a hodgepodge of different things that needed keys (`z` is of course not the only key like this).
`y` for example is used for everything related to yanking. `p` for everything related to pasting. `i` for insert mode. `v` for visual mode. `c` for change, `d` for delete, `w` for word. There's other various examples I'm sure, but most of the basic usage of Vim (besides, perhaps, `hjkl`) all maps to fairly easy to remember keys once you do it a few times and understand what they stand for.
In most Unix systems you should be able to go to the beginning of a line, press Ctrl-k and then Ctrl-y to yank. At the very least your browser and terminal should understand those two commands.
i don't evangelize vim at all. it's a very difficult tool used only by people who need its functionality and have the patience and intelligence to learn it. don't like it? not sold? then don't learn it. use something easier.
[1] http://www.livingcomputermuseum.org/Online-Systems/User-Docu...
Not being interested by learning a language doesn't make it suck.
The operating word here being "today". Vim - and Emacs - are relics from the era when computing was much more saner than it is today. They're old, older than most of us here. It's not that hard to learn their vocabulary once you understand all those words are not weird, it's how things were called back before the industry did another circle and reinvented some wheels again.
:s/Vim/Unix/That is a much different statement than simply saying "vim is intuitive", which is the statement it appears you're arguing against. I doubt there's anyone in the world who would attempt to make such a bold claim as that.
I've found the "vim is intuitive once you understand what each character means" claim to be pretty accurate. Before learning what the keys did, it seemed like a laughably impossible-to-use program, but after learning what the keys do, it feels very natural and composable. Sure, some of that is due to muscle memory, like hjkl for movement, but a lot of that are things like "p for paste", "d for delete", "n for next", and so on. Those, to me, seem like very intuitive mappings.
What I think becomes really intuitive once you understand the basic commands however is the combination of them. If you know that 'dd' deletes a line, it is very intuitive to me that '4dd' deletes 4 lines.
It's also contextual for sure, but for the word to be meaningful at all in a UI design sense, one surely must draw the line somewhere before the required context is to know the editor from experience or by having studied its documentation. Otherwise it's an absolutely useless thing to point out for the sake of discussion. Anyone can use complex things intuitively given some exercise. That doesn't make things like theoretical physics particularly intuitive in themselves.
For example d is the delete command and w is the "move by word" command, so dw is "delete word". / is the search command, so /foo searches for the first instance of foo in the document. You can intuitively figure out that d/foo is "delete everything until the first found foo", and that is exactly what it does.
"delete the first found foo"
Makes more sense to me than "delete everything until the first found foo" at any rate.
Intuitiveness is subjective.
EDIT: rereading my comment, I should have said "/foo moves to the first instance of foo in the document" to correlate how / is a movement just like w is a movement (w is "move by one word")
Yes, then it makes much more sense.
Intuitiveness becomes more clear once you realize you need to learn the language to make things intuitive.
You can't just start speaking Spanish to someone and expect to get them to do what you're asking if you don't know how to speak Spanish, yet. You can poke and prod at words here and there (memorizing what each character means) but you still aren't very effective at that point. Can you ask where the bathroom is? Sure. But can you effectively tell someone where the correct bathroom is? Probably not.
"I want to yank those two lines, paste them over there, select them, and replace all instances of 'foo' with 'bar'."
Vim:
> 2YjjpVj:s/foo/bar/pg
Like speaking other languages, there are a number of ways you could tell Vim to to do what you want.
Now let's look at other editors when you want to tell it what to do. Other editors:
> Remove right hand from keyboard and put it on mouse
> Move cursor to appropriate position
> Click the button down, and drag it until the two lines are highlighted
> Crtl+C
> Move the mouse cursor
> or move your right hand again to the arrow keys
> Ctrl+V
> Ensure your text is still highlighted in some way
> (May require repeating previous steps)
> Ctrl+F or Ctrl+R or something, depending on the app
> Get into one box and enter "foo"
> Get into another box and enter "bar"
> Ensure you have selected "selected text" so everything doesn't get replaced
> Hit <enter> or click
The infamous Stack Overflow answer, "Your problem with Vim is that you don't grok vi," is an oldy but a goody.
vim: 2YjjpVj:s/foo/bar/pg
Sublime: ^L^L^C↓↓^V↓^Ffoo<Esc>^Dbar
(This assumes there are only 2 instances of "foo", but you'd just have to press ^D a few more times otherwise.)
And sure moving your hand to ↓ takes slightly more time, but it's still no where near as bad as your screed makes out. And if you really care, you can make new shortcuts for movement (by editing a simple JSON file).
Personally, my experience is of using vim for several years, and then becoming approximately as proficient in Sublime in a matter of weeks, and then much more productive in a matter of months. And sure, I wasn't putting that much effort into learning vim, but then, I wasn't putting that much effort into learning Sublime either.
Expanding them into new lines outlines the time spent though. ^L is no where near as fast as 2Y.
A minor nitpick though, in vim you aren't pressing escape to get to that mode, it's the normal mode, it's where you should always be.
The point I was making though is that with vim you don't exit insert mode to run commands, you enter insert mode to write text and then immediately exit to normal mode.
It may sound pedantic, but it's a core part of understanding vim. Insert mode is the mode you should spend very little time in.
:help paragraph
[...] The default is "IPLPPPQPP TPHPLIPpLpItpplpipbp" [...]
(they're nroff macros, but pretty baffling to a beginner)If you have to understand it first to find it intuitive, then it isn't intuitive.
In fact I just tested it and I'm still not clear what c2aw does. It seems to just do the same thing as c2w.
"a" can mean "append" but in this context (as the argument to a command) it means to change "a word". See :h aw for details.
> At first it isn't intuitive,
Then it isn't intuitive. An intuitive UI is one that requires little to no instruction because it just works and is discoverable naturally, vi/vim are exactly the opposite, they are the most unintuitive UI practically ever invented. There is nothing remotely intuitive about vi/vim. The barrier to entry is huge and is the main reason people don't use this editor.
> Sort of like how skiing becomes intuitive but isn't at first, or such.
Skiing isn't intuitive either. Getting good requires practice, that you had to practice it to get the feel for it means exactly that it isn't intuitive. Once you're good, it's not because it's intuitive, it's because you practiced and taught yourself new muscle memory.
For a moment, try stepping away from the semantics of what 'intuitive UI' means as a holistic thing, and think of it this way: when you read an angry letter from someone, you are immediately flustered, or something. This happens intuitively. But it only happens if you already know how to read the words and what they mean. It isn't intuitive if you don't know the language. Intuition is perspectivized and based on prior context, etc. The human using the tool is defined by their history, stuff like that. The commenter is just saying, the way I see it, given X in the history of the user, where X is "understands what each character means" (this is now assumed as part of the user's identity), that some other aspects of the entire vim-as-a-text-editor process becomes intuitive.
Yet another example is, an app meant for musicians, like Ableton, where some things are intuitive because they have rhythm and/or melody knowledge or know what filters are, but isn't intuitive if they don't. It's a spectrum. The most interesting questions are often about such nuance. Vim is interesting, and it has stuck around.
I don't know, but I personally care less about semantics than about the human-processes that actually result from the way programs are. Call it 'intuitive' or not, what do you see actually happening? What I see is people making really quick edits (I often see this in myself) that I can't do in other editors that I am able to do as an extension of myself sort of the same way I feel about playing percussion in a band.
Yes actually he did say vim is intuitive; don't tell me no one said X when they very well did say X.
You're failing to understand that I perfectly well understand what he's saying and I'm objecting to the use of the word intuitive; yes, that's semantics which I care about.
I don't need to take a step back or look at it another way because I'm not confused by his message, I'm objecting to his vocabulary. If that doesn't interest you, that's fine, move along. But it interests me because I'm pedantic and I enjoy discussing how a message is conveyed as well as just what's being conveyed. Just because you don't care about semantics doesn't mean others don't. Semantics matter if words are to convey meaning and every reply to a post doesn't have to share what you value about the post. If I want to debate the semantics of a word with the OP then I damn well will and it's not your place to come along and tell me I shouldn't, nor tell me I need to see it another way.
reply to OP below: As you admit the point is debatable, then you can't question my debating it. I understood your intent as well, so what, I wasn't questioning your intent, I'm questioning your choice of words to convey that intent. So no, I don't.
Edit: funnily enough I added it (the -ish?) 30s after posting because I imagined this scenario, guess I could have been more clear.
I think what's happening is that even if we agree on definitions of intuitive, what I'm trying to add is the context around the "vim is intuitive" statement that it is scoped in. It is scoped by the "... once ..." qualifying fragment after it.
Also I'm not really saying what you should or shouldn't do. I'm saying try, because it could be fun; I want to see what happens when you take it there, sort of as a "hmm hey can we try this?" situation. It isn't as much a convincing as a "hey here's how I understand what he said--what do you think of that?" situation. More about going away with things to think about than "cool, I think I'm the person that won this argument." You're welcome to not try this, and I'll walk away, it's totally fine.
FWIW I agree that the unqualified "vim is intuitive" wouldn't be reasonable to say. I'm just trying to explore the nuance.
been using it since beta. has grown to cover quite a bit more since then.