Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!mayoff From: mayoff@cs.utexas.edu (Robert Mayoff) Newsgroups: comp.editors Subject: Re: vi Alternative Required Message-ID: <1005@langtry.cs.utexas.edu> Date: 5 Dec 90 18:16:26 GMT References: <1616@ukpoit.co.uk> <109752@convex.convex.com> Organization: Dept of Computer Sciences, UTexas, Austin Lines: 92 In article joshi@cs.uiuc.edu (Anil Joshi) writes: >The point of the matter is that vi sucks in sveral ways, where as >ISPF is a truly wonderful editor. Whoah. A bit of an opinion, don't you think? Let me say right up front that I have used (in this order): 1. Personal Editor II for the IBM PC 2. Turbo Pascal (and, later, Turbo C) Editor 3. vi 4. XEDIT on VM/CMS 5. emacs 6. ISPF on VM/CMS I know (or once knew) how to write macros for PE2, vi, and XEDIT (in REXX). After having used all of these, I'd say that the best editor for people who are non-computer-oriented is PE2 for the PC, and the best for computer people is either vi or emacs. Let me explain why. PE2 has *excellent* response time, supports multiple files and windows, and has a *very* easy-to-use macro capability. Commands are generally bound to the function keys and to ALT-keystokes. The macro capability (last time I checked) doesn't offer any control constructs, but it's simple to use because every editor function has a long mnemonic name and a short two-character name, and any key can be bound to a list of functions, either spelled out or abbreviated. The problem that "power users" might have (or at least, the problem I have with it) is that most major functions, such as cursor motion and saving/searching/etc. are bound to the arrow keys and to function keys. I type 70 wpm or more, so it slows me down to have to move my hands off the home row. The Turbo Pascal (and other Borland-products) editor is basically WordStar, and doesn't have much of a macro capability, as I recall. I never liked it very much, though I don't remember why now (it's been a long time). vi is my favorite editor, but it is not for everyone. I love vi because of the speed it offers. vi, in general, offers the best response time I've seen, and eliminates the problem of taking my hands off the home row. I freely admit that a modal editor can be difficult to use, but I personally have never had a problem with it. vi offers a limited macro capability in a similar vein to PE2, except that the macros are defined by actual keystrokes, not function-names. However, since vi is built atop ex, the user has access to all of the ex functionality. True, ex is getting to be quite obscure since most people never touch a teletype anymore (I said *most people*, no flames please). However, if you're willing to spend the time to learn a few of its commands, or have a master to teach you, then the power to be gained is very worthwhile. In addition, vi offers regular-expression matching, which I've only found in one other editor, emacs. I use regular-expression matching quite often (daily, probably). Another feature about vi is that the user can pipe parts of a file through a filter. Most people never do this, and may not even know about it, but I've learned to do some pretty fancy stuff using sort, colrm, cut, paste, fmt, etc. emacs is another good editor. There's a lot of religious debate in UNIX circles about which is better, vi or emacs. I've posted before, admitting that emacs is a better editor and explaining why; but I also explained why I still prefer vi. Simply: I don't like lisp, I don't like running under an interpreted (read: slow) environment, and emacs (GNU Emacs, that is) is both. However, for those that can stand lisp, and are willing to put up with a slightly (but only slightly) slower editor, with a virtual unlimited macro capability, emacs may be the way to go. The ISPF editor is a very old editor, but still useful. However, given the opportunity, I'd still use XEDIT. I got the feeling this summer when I worked at IBM that there's an ISPF vs. XEDIT religious debate in IBM mainframe circles along the lines of the vi vs. emacs debate in UNIX circles. I met people over the summer who were amazingly proficient at ISPF, and I was continually impressed with the little tricks they did. However, one major problem I have ISPF is that it *always* shows sequence numbers. There's no way to turn them off. Now, sequence numbers are fine for programming, but when I read mail that's been written in 80 columns, 72 columns just aren't enough. Also, although ISPF provides a macro facility, I could never figure out how to redefine keys to my heart's content. Finally, there's the fact that it runs on 3270s. I have used a version for PCs, but it simply simulated a 3270-style terminal. Hence, no scrolling. Don't get me wrong - I perfectly understand the logic behind the 3720 terminal concept (screen-at-a-time). I agree that it has modern uses, and is an efficient solution to some problems. However, as a terminal running an interactive text editor, it *sucks*. In my humble opinion. ISPF and XEDIT were built around that fact; I can only regret that if character-at-a-time terminals had existed when they were written, the state-of-the-art in interactive editors might be that much further along. So, in summary, PE2 for users, vi (or emacs) for "power users". And if you're screwed - er, I'm mean stuck with a 3270-style terminal, I'd go with XEDIT - it's much more flexible than ISPF, and offers (as far as I can tell) most of the features of ISPF. Flame-shield activated. -- /_ rob /_ Fun things to do with UNIX (#72 in a series): / cat /dev/zero > /dev/null Brought to you by Super Global Mega Corp .com