There was an email thread on my motorcycle list that referenced vi (the *nix text editor). One of the people on the list didn’t know what vi was, so I said:
vi stands for VIsual. It’s a text editing program used on Unix like
And it kicks ass.
Boy did that start up a flame war with another user. He said:
It most assuredly does NOT kick ass. It once kicked ass, back when a DecWriter was the computin device of choice. Now it serves only to prove that universal truism: The very worst screen editor is better than the very best line editor.
Many people call vi a screen editor, but the truth is that it really isn’t. It sucks. It sucks all those thins you consider bad to put in your mouth, like day-old limp donkey dicks and that sort of thin.
So I replied with:
Hmm.. Had trouble with vi have you?
Or are you all point-and-click gooey now?
I spend 90% of my day using vi on various *nix systems through a terminal
What would you have me use instead?
He fired back with:
vi illustrates everything that is wrong with Unix, Linux, AIX, and all their related OS’s. It is arcane, counter-intuitive, and the saddest thing that can be said about it is that there is nothing better to use. The fact that vi is the best non-GUI editor available for *nix verges on criminal negligence — if only there was someone to pin it on. emacs is worse.
Yes, I went GUI as far as editors were concerned back in 1984 and I despite looking back briefly in 1990, have never regretted that decision. I use gedit at home to edit my HTML file for my website.
After the jump – my huge, not too rantish response.Arcane: “known or knowable only to the initiate”
So, any program that you can’t use out of the box without any training or looking at a manual is bad? I have to disagree. There are many Windows GUI based programs – that are quite good – that you need training to run. CAD/CAM leaps to mind. Hell, if you want to get good results out of Word you had better crack the manual or help files.
Counterintuitive: “contrary to what one would intuitively expect”
I would be interested to know of a keyboard only editor that could be fully intuitive. And I would argue that some (not all, but there are limited letters available) of the vi commands are intuitive. i.e.
i = insert at current location
I = insert at end of line
r = replace current character
R = replace until you hit escape
y = yank into the paste buffer
p = paste the paste buffer
w = write the file
q = quit
Using hjkl for moving around becomes intuitive after you do it for a while.
I hate GUI editors for editing plain text files. I detest having to remove my hands from the keyboard to move the mouse to select text or click a menu button. Sure, some of the menu buttons have short cut keys, but you can’t convince me that any of those key combos are intuitive, and many don’t have short cuts.
Okay, maybe using the arrow keys to move around is more intuitive, but then I have to take my hands off the home row. And any modern vi implementation supports using the arrow keys.
I love vi because after a short learning curve I believe that I can create and edit text faster than in a GUI.
I write all my personal emails in vi. I create all my web page content (that is not created using a CMS) in vi. I program perl in vi.
If you are writing a book, with fancy layout, then sure, a wysiwyg editor is what you should use. But for editing text files? Give me fast, easy searching and replacing and easy movement. That’s why I use vi. Hell, if I was writing a book, I’d probably create the contents in vi on my server – so I could telnet in from anywhere, any time I needed to make a change – and then do final formatting in a GUI. (Although just to be perverse, I might have to learn LaTeX or something to do it the *nix way.)
I would be interested in your design spec for a better screen based non-gui text editor. How would you make it better than vi? How would you make it more intuitive? How would you make it less arcane?
I also feel that there are applications that are helped by a GUI and applications that are hindered by a GUI. I have personally used several keyboard driven applications that were upgraded to GUIs and I can tell you that I was always much faster on the keyboard driven version.
GUIs are good for casual users. GUIs get in the way of power-users.
Shall we descend into the *nix vs. Windoze fight too? I will tell you that I firmly believe that there is a place for *nix (the server room, not the desktop) and a place for Windows (the desktop, not the server room.)
I will admit that Linux as a desktop is not there yet. But I will tell you also that I hate having to support Windows as a server platform.
As far as arcane, I put it to you that Windows is just as arcane as counterintuitive as *nix, but in different ways. Clicking on “Start” in order to stop your computer? That’s intuitive?
I also am surprised at the vehemence of your response. Why do you feel you need to slam a tool that thousands of people use sucessfully just because you don’t like the way it works?
Why not just say “vi – I tried it, I didn’t like it” and move on?