Post a Comment
I beg to differ. Vi is great, but vim is better. It has filetype plugins, syntax highlighting (in color!), and the "visual mode" that I find quicker than using marks. The are other little things that vim does better than vi, like backspacing through line breaks in insert mode. Mouse support comes in handy during code browsing or "sparse editing" (if you get what I mean). I have both ctags and cscope integrated into vim, as well as LaTeX.
I have no problem using vi as long as I'm being paid for my time. You'd need to pay me significantly more to use Emacs, though. I'd rather use Gedit...
Shells and editors are very personal things. If you use them all day, the little things can drive you nuts.
I'm not talking about vi vs vim, I'm talking about the feature of the interpreters, searching what you want in the history with Esc+/, etc which can use either vi-like shortcuts or emacs-like shortcuts.
tcsh provide a good emacs-like mode but a crappy vi-like mode (at least the tcsh (old) version that we have on our Solaris servers).
Many of the old-school "true UNIX users" that I've met over the years have a severe case of tunnel vision and don't yet realize that there's more to life than the smallish set of vanilla tools which come bundled with the OS.
Some of those tools are admittedly excellent, but some of them have been improved or even superseded by open source variants, and some of them were fine 20 years ago and still work but are showing their age today.
Some examples: I use Midnight Commander for doing file management on Solaris, I use either NEdit or mcedit (*not* vi) to edit source, I use tools like exuberant ctags and Eskil to navigate through and compare code, and I use DDD to debug stuff instead of command-line gdb (with or w/o the TUI).
Why? For me, those things are far more productive than the normal cd/cp/mc/rm/whatever commands, vi, traditional grep searches, and the raw debugger.
I don't question folks who use traditional utilities for their work, and I can still use them in a pinch if I have to, but I question those who suggest that I regress back to that level when I've already moved on to a set of tools which I'm more comfortable with.
At work I have to use ksh for scripting. It's 99% the same as bash, but arrays are a huge quagmire in ksh, and don't get me started on the 'set' command. I don't dislike scripting in ksh, but in the few ways that bash and ksh differ, I prefer bash.
I cannot _stand_ ksh as an interactive shell. I'm a huge vi fan, but it just does not make sense for command editing. I developed muscle memory on bash, with tab completion and up/down-arrows for history, and anything else feels incredibly awkward. At least seven times per day I want to kick down the door to the machine room and put a large calibre round through the freakin build machine that doesn't have bash installed.
Ahhh... I feel much better now... it's been a long day.
I love zsh as well. It has an enormous amount of neat features and is very powerful. For a great starting point to see what you can do with zsh, check out this guy's dotfiles:
http://strcat.neessen.net/dotfiles/#zsh
Take your time and go through all the files; they're fairly well commented.
I've only been using *nix for around 20 years and had never heard anyone use the term, "siqil", since I was a printers apprentice in the early 70's as a reference to the shot mark or union label, using this term for the home directory tilde was a surprise. Anybody ever hear that before?
sigil, not siqil.
See http://www.perlmonks.org/?node=sigil&go_button=Search
and http://en.wikipedia.org/wiki/Sigil_(computer_programming)
"TCSH -> obscure"
Maybe. I'll give you that one.
"ZSH -> lack of features"
You've got to be completely insane. Me thinks you've never read the docs on this one.
"KSH -> unmaintained"
Since when? Not only is pdksh maintained, but the pdksh used on both OpenBSD and NetBSD are fully maintained and get new features quite often.
"Why do we still speak about the others? If you can't do it on BASH use a scripting language."
Because I'm damn well not installing a non-standard shell on my BSD or Solaris boxes just to write scripts. This may ne a shocker for you, but Linux is not the only system around and bash is hardly a standard on any other UNIX/UNIX-like system.
"lack of understanding"
yes, because they're all so very different...no wait, they aren't.
"TCSH -> obscure"
So?
"ZSH -> lack of features"
Wrong.
"KSH -> unmaintained"
Wrong.
How many new features does a shell need anyway?
"Why do we still speak about the others?"
Because people like them?
"If you can't do it on BASH use a scripting language."
If your scripts aren't compatible with POSIX /bin/sh you're doing something wrong.




