I'm not sure it's a good idea to try to stuff vim in there. It's hard enough to try to learn unix command line skills, throwing vim in to the mix is just a detour. Nano is good enough for tutorial purposes.
And I'm a hard core Vim user. I have no strong opinions for or against specific text editors but any hacker worth their salt should know Vim and/or Emacs to be able to use a powerful text editor when stranded in the console for one reason or another.
But this kind of superficial introduction to Vim is a big disservice. The last thing we need is people who hate Vim because they understand it poorly based on a short tutorial.
As an enthusiastic-but-incompetent vim user, I concur. Reading through that laughably brief introduction is going to scare off a lot of people, and makes the whole exercise much harder than it needs to be.
I can recall a situation in one of my first experiences with linux where I wound up rebooting a machine because I couldn't figure out how to get out of vim.
My first vi experience was on a Unix terminal in a CS laboratory with a lot of people doing serious work and I just hitting keys to see if ANYTHING could take me away from that and the thing just BEEEPed...
But isn't that a good reason to learn the smallest basics of vim?
Maybe it's just me, but after I had my first bad experience with vim, I tried learning the basics so that would never happend again.
Since this is a guide for linux, this is a natural step in the linux learning :)
The first time I go to a machine for the first time, and I need an editor, I fire up emacs. If it isn't there, I do [apt-get|yum] install emacs, and then I fire up emacs.
If you want to learn linux, you will need to learn vim.
It's pretty much the only decent editor constant in all linux distos. I think it's better to get it out of the way or the linux user won't be able to edit a file properly.
I know _way_ too many sysadmins, even distro maintainers, seasoned devops engineers, who have stuck with nano, joe, etc. for years and years and still stick by it. Although I am glad that I learned vim when I was starting out some 6 years ago, I wish I had spent all that time learning Python or Perl well. Too often the importance of vim is over-inflated as a necessary skill -- but it's just one _tool_ (besides emacs) that gets you some efficiency. That is all it is. I would _never_ advise someone starting out with Linux to spend huge amounts of time learning vim/emacs, it's too much of a distraction in the beginning.
The big difference between vi and all the other editors out there is that some version of vi is installed by default in just about every variation of *nix you're ever likely to encounter. Vi doesn't have to be your favorite editor, and you don't have to be a power user, but you have to know at minimum how to edit a file with reasonable proficiency, so you're not completely lost the first time you ssh into a box that doesn't have your favorite editor installed.
Assuming you have one handy that is statically built against the the right libraries for the right architecture and the right OS, and assuming the machine (and network) is in a state where you can get at the place where the binary is stored. But that is a lot of assumptions and I would rather just take the time learn the basics of vi rather than hope that all those assumptions always happen to be true.
But I never said you have to spend huge amounts of time learning vim. You just need to learn the basics and it will help you a lot more than not covering it at all.
I think the biggest confusion in vi is the insert/normal mode. Unexperienced people tend to think on a text editor when you type ":" you add that to the text, while in vim it's the start of a command :D
And I'm a hard core Vim user. I have no strong opinions for or against specific text editors but any hacker worth their salt should know Vim and/or Emacs to be able to use a powerful text editor when stranded in the console for one reason or another.
But this kind of superficial introduction to Vim is a big disservice. The last thing we need is people who hate Vim because they understand it poorly based on a short tutorial.