Hacker News new | ask | show | jobs
by nineteen999 2502 days ago
As I grew up working with both Linux and a bunch of legacy UNIX systems as well (Solaris, AIX, HP-UX, Tru64), over the years I've ended up using only a subset of vi commands that work with both SVR3/SVR4 style systems (tradional vi) and Linux (vim). A similar thing happened with my shell scripting style; I'm prone to writing shell scripts that exclude bash-isms and conform more to standard Bourne shell syntax, since I know that they will work pretty much anywhere.

Its a trade-off; I'm less efficient with vim than I could be, since it has so many more powerful features over standard vi. The flip side is that I can go back to those older systems and feel comfortable within a couple of minutes, without getting frustrated at the installed vi editor missing the vim features that I otherwise would have come to depend upon. I traded off using powerful features that could speed coding (if I would just memorize them all), for the flexibility to be able to jump between (similar, but different) systems much more easily.

Of course, those systems are not as in as much common use anymore due to the end of the UNIX wars, so the value of that style of working is now resulting in diminishing returns.

I'd like to be able to change, but like many older programmers, we often like to stick to what we know, as long as we can get the job done quickly and with minimum fuss.

1 comments

As a long time "expert" vim user, I have found that that fear you expressed - the inability to use vi comfortably after using vim more completely - is ill-founded.

I can use vi as comfortably as vi can be used. I wish that vim's features were there, but that doesn't make me any less adept at using even the most minimal build of vi.

Really, this is because vim itself is generally stuck under the ceiling if vi's keymap. Apart from a very slim amount of additions, there isn't any difference between the interface of vi and vim.

Vim makes a point to keep that backwards compatibility. In fact, most vi implementations you use are simply a heavily stripped down certain of vim.

> In fact, most vi implementations you use are simply a heavily stripped down certain of vim

This may be true today, but certainly was not on the aforementioned systems back in the 1990's, when I learned UNIX. Even in the early days of Linux, I don't believe vim was as popular, and frequently the distribution shipped with an alternative (nvi, elvis etc). In fact, I probably learned most of my limited vi subset back in the late 1980's on XENIX come to think of it - and that was extremely limited from memory.

Unfortunately I am also relatively lazy and dumb compared to the average HN user. The only real concession I have made to vim is to use the cursor keys for movement instead of the traditional vi cursor control commands, because it helps when switching between desktop based editors (eg. Notepad on Windows, the equivalent Gnome editor, Visual Studio etc). And also because I am unlikely to go back to those old UNIX systems again.

Of course, I am half expecting someone to come along in a moment and tell us we are both wrong anyway, and that we should be using Emacs.