Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


True, but one thing I noticed is that some command line tools like to just throw vi at you unannounced when you do something that required editing.

This was one of the most frustrating things when I was learning linux, "I press buttons but nothing happens, how do I get out of here?"


EDITOR environment variable usually takes care of that for most of them.

An esoteric example from my MacOS X:

sh-3.2# EDITOR='cat' vipw | grep root:

root::0:0::0:0:System Administrator:/var/root:/bin/sh

daemon::1:1::0:0:System Services:/var/root:/usr/bin/false

vipw: no changes made

vipw: /etc/master.passwd: unchanged

_cvmsroot:*:212:212::0:0:CVMS Root:/var/empty:/usr/bin/false

sh-3.2#

Great excuse to talk about environment variables and changing/examining them...


Yep, I agree: just the feeling of pressing something and nothing happening is too hard for a novice. Thanks for saying this.


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 :)


I wrote this guide and I'm convinced basic vi usage is essential to learn. I have to encouter a system without vi yet.


I absolutely agree — vi knowledge is essential, and I don't have it yet. Don't capitulate and let others be like me.


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.


Lucky you :) Good luck running emacs on some embedded things.


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.


Uhm.. no.

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.


Couldn't you just pull in a nano binary (assuming you've no access to a package manager on the remote host) if you've more than a few lines to edit.


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.


It's not about being able to install your other favorite editor. It's about knowing how to use the one common editor between linux distros.


If you're a system administrator, it's highly likely that solving this problem is probably as difficult as the original task you had to do.


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.


All you need to know is:

press

   i
to start editing text

to save and quit, press

    ESC + : + w + q + ENTER


or just :x


or Shift+Z-Z


IIRC the basics are ":wq"?


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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: