In what sense do you dislike complexity? Is it "this software has too many features," or "this software has too many lines of code," or "the code isn't well-organized", or all the above, or something else? Don't take this as an argument; I'm likely to be highly sympathetic to whatever you say.
I tend to dislike complexity in terms of user interface, and for the most part, "out of sight is out of mind." That's why I have to use dwm over a more typical desktop environment. So I don't really mind a command line program that has a lot of options I don't use. Same thing for vim: I can easily just ignore the features I don't use (the vast majority), because of the way vim is designed.
If the program has too many lines of code, it tends to be not too well organised (because it usually means it does too much) and it usually means it has too much features (thay could be easily moved into separate programs).
> I can easily just ignore the features
> I don't use (the vast majority)
Please excuse my blasphemous comparison, but how this is different from how people use MS Word? :)
Oh, don't misunderstand me. Vim is complex alright, and like I say, it has a pretty steep learning curve, but it has just the right amount of complexity for it's purpose (in this case, quite a lot). Hence, an example of good design in my book.
I could argue that nvi may be not too complex, but vim is certainly too complex.
(An good example of an editor that is not too complex but works well with external tools is Acme.)