Hacking Vim 7.2
briancarper writes "Vim is an open-source text editor with a power and flexibility matched only by the steepness of its learning curve. As the author of this book states, 'Vim Can Do Everything' but configuring it to do so is sometimes daunting. Hacking Vim 7.2 aims to help the average Vimmer get the most out of customizing Vim, for fun and productivity." Read on for the rest of briancarper's review.
Hacking Vim 7.2
author
Kim Schulz
pages
244
publisher
Packt Publishing
rating
8
reviewer
briancarper
ISBN
1849510504
summary
Customizing and scripting Vim 7.2
Vim has an overwhelming number of features. Its built-in help system and documentation are comprehensive and easy to navigate once you know what you're looking for, but knowing where to start is sometimes very difficult. The best you can hope for in a book is a broad outline to point the way toward features that you didn't know much about. Hacking Vim 7.2 achieves this goal.
No topic is covered in nearly the depth you'll find in the official documentation (or even on the Vim Wiki), but every topic is covered in enough detail to let you know that a feature exists and to point you in the right direction to begin using it. Most helpfully, throughout the book are references to things to look up in Vim's help system, as well as links to various relevant scripts.
This is not a book for an absolute Vim beginner; some familiarity with Vim is assumed. And for a Vim fanatic, much of the material may be common knowledge for you already. But any seasoned Vimmer will tell you that there are always things to learn about this editor, and I think nearly everyone will learn something from this book. For someone who uses Vim and is looking to master it, this book is a great starting point, though you'll still need to dive into the official reference material to really cement your knowledge.
The book starts on an odd note. Chapter 1 is a history of vi and the various vi clones released over the past couple decades. This information is interesting trivia and serves to give credit to programmers who paved the road to Vim, but it doesn't really help anyone "hack Vim" in any way. The book probably could've done without this chapter.
Chapter 2 deals with customizing the overall look and feel of Vim. How and where to edit vimrc is covered, with brief attention given to cross-platform issues. It covers the basics (changing font faces and colors, customizing menus and toolbars), as well as pointing out some more obscure settings, like highlighting the cursor row and column (creating a kind of "cursor crosshair"), and using the match feature to highlight multiple search terms at once. This chapter is a good foundation for later chapters and a good introduction for anyone who has never edited their own vimrc.
Chapter 3 is about text navigation. Sadly, the book doesn't go into as much detail on movement commands as I would've liked. The ability to move around and manipulate text quickly in Normal Mode by combining counts and motions/operators is one of Vim's most unique and powerful features, but it only gets a few paragraphs here.
There are some interesting key mappings provided, for example how to move up and down between "virtual" lines when lines are soft-wrapped. Search is covered briefly, both plain text search and multi-file search via vimgrep, but there's little information about Vim's powerful regular expressions, which I thought was a shame. Marks are discussed, both normal "hidden" marks as well as visible "signs", the latter being a feature I've never used.
Chapter 4 is about "production boosters" and covers a wide variety of topics. Much of the chapter is devoted to "templates" and "snippets", which allow you to build skeletons of commonly-used source code (with fill-in-the-blanks markers) that can be re-used when editing new files. A system for using these templates is built from scratch using Vim script, providing a clever and useful example of scripting in action.
Auto-completion is covered in a lot of detail. Some custom key mappings are provided to help make "omni-completion" in Vim a bit easier to invoke. This chapter also very thoroughly covers Vim's multiple copy/paste registers and how they work. Recording and using macros, pointed out as one of Vim's more overlooked features, gets a good, lengthy example.
"Undo branching" in Vim is wonderful, but difficult to understand. Chapter 4 gives a simple, step-by-step example of why it's useful and how it works. This chapter also briefly discusses folding, vimdiff, netrw (editing files remotely via SSH and other protocols), and ctags. There's lots of good stuff in this chapter and you're almost certain to learn something useful.
Chapter 5 covers text formatting, both using built-in Vim commands and by piping text through external tools like par and tidy. A lot of space is devoted to using Vim to prettify plaintext, for example by centering titles on a line, adding ASCII-art dashes for headers and making bulleted lists. If you edit plaintext in Vim often, this is probably a great chapter, but I didn't find much use for most of it.
For programmers, the book discusses the different indentation styles available in Vim and very briefly shows how to write your own indentation functions, and how to indent and reformat blocks or whole files of code all at once. "Paste mode" also gets a passing mention. Personally I think a programmer reading this book would've benefited from much more detail about Vim's myriad indentation and text-wrapping options and how they work together, as this can be one of the most frustrating parts of Vim to configure correctly.
I had high hopes for Chapter 6 and 7, which deal with Vim scripting, but I was largely disappointed. Chapter 6 deals with scripting basics, and is essentially a beginner's language tutorial. It explains which variable types exist in Vim script, how if/then/else works, how for- and while-loops work, how function parameters operate, and so on, but anyone who knows a modern scripting language will learn these things quickly without much effort. There's also some basic information about how to write a syntax-highlighting script from scratch, but there's not really enough information to allow you write one for a real programming language.
Chapter 7 is supposed to be about "extended scripting" topics, but serves largely as a style guide. It details how to structure a script to check for compiled-in features and Vim version number. This chapter touches briefly on using SID and PLUG to namespace functions, but the explanation and example left me puzzled. How to use the debugger and how to make Vimballs are both explored, and the book points out that you can use Perl, Python and Ruby to script Vim without going into much detail or giving solid examples.
If you're looking for any advancing information on writing your own functions in Vim script, you're mostly out of luck here. Previous chapters in the book do include some useful and practical functions, but those functions are never really taken apart or explained in detail.
Finally there are two appendices, one of which lists a bunch of games you can play in Vim (again this could've been left out of the book and I wouldn't have missed it), as well as examples of using Vim as a mail, chat, and Twitter client. There's also a feature-by-feature comparison of Vim to MS Visual Studio, showing that many of Visual Studio's abilities can be provided in Vim given the proper scripts. I thought it was an interesting demonstration that Vim really can do everything, just in case the reader had any doubts at this point. The last appendix is a style guide for keeping your vimrc clean, mostly via common sense and splitting your configuration into multiple files.
Overall, stylistically the book is a bit dry and humorless, but it's easy enough to read and it gets its information across clearly. There were a few typos and editing errors, including a few rather glaring typos in some code examples, but overall the author seems extremely knowledgeable about Vim. The best parts of the book are where the author says "this was useful to me personally, so here's how I do X". This book is clearly written by someone who uses Vim all the time, and most of the information provided is practical and immediately usable.
I do feel the book should've gone into more detail in many areas. At 244 pages, the book is short and gives a rather shallow view of many of Vim's features. But the book hits all the right notes and leaves few features entirely unexplored.
I'd recommend this book to any person who uses Vim and wants to explore features they may have been missing. There's nothing in this book you won't find in Vim's built-in documentation, but this book lays everything out in an easy-to-read format, and should serve as a good starting point to customizing and mastering Vim.
You can purchase Hacking Vim 7.2 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
No topic is covered in nearly the depth you'll find in the official documentation (or even on the Vim Wiki), but every topic is covered in enough detail to let you know that a feature exists and to point you in the right direction to begin using it. Most helpfully, throughout the book are references to things to look up in Vim's help system, as well as links to various relevant scripts.
This is not a book for an absolute Vim beginner; some familiarity with Vim is assumed. And for a Vim fanatic, much of the material may be common knowledge for you already. But any seasoned Vimmer will tell you that there are always things to learn about this editor, and I think nearly everyone will learn something from this book. For someone who uses Vim and is looking to master it, this book is a great starting point, though you'll still need to dive into the official reference material to really cement your knowledge.
The book starts on an odd note. Chapter 1 is a history of vi and the various vi clones released over the past couple decades. This information is interesting trivia and serves to give credit to programmers who paved the road to Vim, but it doesn't really help anyone "hack Vim" in any way. The book probably could've done without this chapter.
Chapter 2 deals with customizing the overall look and feel of Vim. How and where to edit vimrc is covered, with brief attention given to cross-platform issues. It covers the basics (changing font faces and colors, customizing menus and toolbars), as well as pointing out some more obscure settings, like highlighting the cursor row and column (creating a kind of "cursor crosshair"), and using the match feature to highlight multiple search terms at once. This chapter is a good foundation for later chapters and a good introduction for anyone who has never edited their own vimrc.
Chapter 3 is about text navigation. Sadly, the book doesn't go into as much detail on movement commands as I would've liked. The ability to move around and manipulate text quickly in Normal Mode by combining counts and motions/operators is one of Vim's most unique and powerful features, but it only gets a few paragraphs here.
There are some interesting key mappings provided, for example how to move up and down between "virtual" lines when lines are soft-wrapped. Search is covered briefly, both plain text search and multi-file search via vimgrep, but there's little information about Vim's powerful regular expressions, which I thought was a shame. Marks are discussed, both normal "hidden" marks as well as visible "signs", the latter being a feature I've never used.
Chapter 4 is about "production boosters" and covers a wide variety of topics. Much of the chapter is devoted to "templates" and "snippets", which allow you to build skeletons of commonly-used source code (with fill-in-the-blanks markers) that can be re-used when editing new files. A system for using these templates is built from scratch using Vim script, providing a clever and useful example of scripting in action.
Auto-completion is covered in a lot of detail. Some custom key mappings are provided to help make "omni-completion" in Vim a bit easier to invoke. This chapter also very thoroughly covers Vim's multiple copy/paste registers and how they work. Recording and using macros, pointed out as one of Vim's more overlooked features, gets a good, lengthy example.
"Undo branching" in Vim is wonderful, but difficult to understand. Chapter 4 gives a simple, step-by-step example of why it's useful and how it works. This chapter also briefly discusses folding, vimdiff, netrw (editing files remotely via SSH and other protocols), and ctags. There's lots of good stuff in this chapter and you're almost certain to learn something useful.
Chapter 5 covers text formatting, both using built-in Vim commands and by piping text through external tools like par and tidy. A lot of space is devoted to using Vim to prettify plaintext, for example by centering titles on a line, adding ASCII-art dashes for headers and making bulleted lists. If you edit plaintext in Vim often, this is probably a great chapter, but I didn't find much use for most of it.
For programmers, the book discusses the different indentation styles available in Vim and very briefly shows how to write your own indentation functions, and how to indent and reformat blocks or whole files of code all at once. "Paste mode" also gets a passing mention. Personally I think a programmer reading this book would've benefited from much more detail about Vim's myriad indentation and text-wrapping options and how they work together, as this can be one of the most frustrating parts of Vim to configure correctly.
I had high hopes for Chapter 6 and 7, which deal with Vim scripting, but I was largely disappointed. Chapter 6 deals with scripting basics, and is essentially a beginner's language tutorial. It explains which variable types exist in Vim script, how if/then/else works, how for- and while-loops work, how function parameters operate, and so on, but anyone who knows a modern scripting language will learn these things quickly without much effort. There's also some basic information about how to write a syntax-highlighting script from scratch, but there's not really enough information to allow you write one for a real programming language.
Chapter 7 is supposed to be about "extended scripting" topics, but serves largely as a style guide. It details how to structure a script to check for compiled-in features and Vim version number. This chapter touches briefly on using SID and PLUG to namespace functions, but the explanation and example left me puzzled. How to use the debugger and how to make Vimballs are both explored, and the book points out that you can use Perl, Python and Ruby to script Vim without going into much detail or giving solid examples.
If you're looking for any advancing information on writing your own functions in Vim script, you're mostly out of luck here. Previous chapters in the book do include some useful and practical functions, but those functions are never really taken apart or explained in detail.
Finally there are two appendices, one of which lists a bunch of games you can play in Vim (again this could've been left out of the book and I wouldn't have missed it), as well as examples of using Vim as a mail, chat, and Twitter client. There's also a feature-by-feature comparison of Vim to MS Visual Studio, showing that many of Visual Studio's abilities can be provided in Vim given the proper scripts. I thought it was an interesting demonstration that Vim really can do everything, just in case the reader had any doubts at this point. The last appendix is a style guide for keeping your vimrc clean, mostly via common sense and splitting your configuration into multiple files.
Overall, stylistically the book is a bit dry and humorless, but it's easy enough to read and it gets its information across clearly. There were a few typos and editing errors, including a few rather glaring typos in some code examples, but overall the author seems extremely knowledgeable about Vim. The best parts of the book are where the author says "this was useful to me personally, so here's how I do X". This book is clearly written by someone who uses Vim all the time, and most of the information provided is practical and immediately usable.
I do feel the book should've gone into more detail in many areas. At 244 pages, the book is short and gives a rather shallow view of many of Vim's features. But the book hits all the right notes and leaves few features entirely unexplored.
I'd recommend this book to any person who uses Vim and wants to explore features they may have been missing. There's nothing in this book you won't find in Vim's built-in documentation, but this book lays everything out in an easy-to-read format, and should serve as a good starting point to customizing and mastering Vim.
You can purchase Hacking Vim 7.2 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
but does it tell you how to pronounce "Vim"??? (first post?)
"It takes considerable knowledge just to realize the extent of your own ignorance." - Thomas Sowell
Use EMACS
First things first: VIM is a wonderful tool and I use it almost daily, for hours a day.
But I'm getting a bit miffed by all the cruft that's added. From a lean and mean editor it is growing into a bloated monstrosity. If I wanted that I'd just as well use Emacs...
What I would like is a way to compile in (or rather, to leave out) all the gimmicky stuff I never use anyway. That way it loads faster and is a much more responsive tool.
Customizing something is not “hacking” it. Hacking something is taking it and using it to do something that it wasn’t originally designed for in a creative way that most people would never think of.
This is the only part of the book that is illustrative of “hacking” Vim:
Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
... you have to hack your text editor
Vim has an overwhelming number of features. Its built-in help system and documentation are comprehensive and easy to navigate once you know what you're looking for, but knowing where to start is sometimes very difficult.
It's really intuitive, once you get to know how to use it.
If all I had was a text terminal... maybe. But I don't know of anything that Vim does that I can't do quicker in Open Office. Can someone allay my ignorance as to the virtues of Vim over anything but Emacs?
Who cares? Emacs is far superior anyways due to its superior customization. And if you really like vim's editing paradigm, theres always VIPER mode (VI Plan for Emacs Rescue) which emulates all the VI keybinds.
Can it help me find the holy-grail?
That was directed at the author of the book, by the way, not the reviewer or Slashdot editor who posted the story.
Additionally, I think she’s a woman, although the extra letter in “she” wouldn’t have fit in the size limit for the subject of my post. (“Kim” could be either male or female but I looked on Google and it seems her full name is Kimberly.)
Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
Nano. If I need or want anything else I use a graphical editor.
A first-time reader might have trouble figuring out how to stop reading the book. You just type escape, colon, q, exclamation point, click your heels three times and say "There's no place like the command prompt."
for fun and productivity
That's two counts of *hacking* right there. As vim wasn't originally designed for either use.
Kim Kimberley. Wasn't she the detective in the Level 9 adventure Snowball?
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
This is one of my pet peeves.
A steep learning curve refers to something that is quickly learned, as the curve that represents knowledge over time would indeed be steep in that case.
Something difficult would have a shallow learning curve, not a steep one.
up
Bow-ties are cool.
This is probably the only "hack" you need: http://www.vim.org/scripts/script.php?script_id=300 ;-)
Get the followup volumes too:
Noise cancelling algorithm design using sh. ( Shhhhhh... )
Real-time traffic control with bash.
Time-domain-reflectometry made easy, with sed.
GPS satellite tracking with tr.
Build a species database with Python. ... and many more ...
We all know EMACS is a great OS, but what it really needs is a text editor.
Case in point: I want it to show me a vertical line at 80 chars, like TextMate or GEdit. Not even GVim can do this. :-)
Use Emacs to open the .vimrc file :)
I know about 5% of VIM and that does everything I need in a text editor. I always wonder why the other 95% was created and who the heck uses it.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Definition of hack, Jargon File
I’ll see your Jargon File link and raise you three more.
http://catb.org/jargon/html/N/neat-hack.html, sense 1
http://catb.org/jargon/html/H/hacker.html, senses 1 & 7
and http://catb.org/jargon/html/meaning-of-hack.html.
Alexander Peter Kristopeit bought his basement from his mommy for one dollar.
... what I did in the first post. I finished the subject in the body. I did it on purpose. And I will do it again.
"/ESC/ /ESC/ :wq!" was the first thing I ever learned in vi/vim back 11 years or so ago...
I tried using nano, pico, emacs, etc.
I just couldn't get over the lack of real-estate (standard terminal).
A lot of folks swear at VI/VIM...
I, for one, swear by it...
Now, all I have to do is convince the wife that ANOTHER "computer" book is necessary...
Cheers, guys!
--Stak
Holy happy hippy crap!
Chapter 3 is about text navigation. Sadly, the book doesn't go into as much detail on movement commands as I would've liked.
I had high hopes for Chapter 6 and 7, which deal with Vim scripting, but I was largely disappointed.
If you're looking for any advancing information on writing your own functions in Vim script, you're mostly out of luck here.
Overall, stylistically the book is a bit dry and humorless
I do feel the book should've gone into more detail in many areas. At 244 pages, the book is short and gives a rather shallow view of many of Vim's features.
There's nothing in this book you won't find in Vim's built-in documentation
At best, it seems like this would earn a 5 rating.
While reading the review of the book, I thought the reviewer's comment about the history of Vim being unnecessary to be wrong. Having used Vim on various systems including RHEL, Fedora, Mac OS X, Windows (gvim), and BSD there are some differences that catch unaware users off guard. Most Linux operating systems will install Vi as a standard editor and add an alias for Vim to use Vi. This is seems all well and good, however Vi has some pain points in particular the inability to backspace / delete characters on the current line. Anyhow, I'm not sure ignorance is the best policy especially as there are so many variations out there on different OSes.
Interesting that this book is not available as and eBook.
Vi was made for productivity. It was built to help you edit text efficiently over low bandwidth connections (specifically Bill Joy's 300 baud modem). Since Vim has more features designed for convenience, you could argue that it was made so you could be even more productive when editing text.
import antigravity
import soul
Seems like just yesterday that X in the statement "'[X] Can Do Everything' but configuring it to do so is sometimes daunting." would have been Emacs. Further evidence of the decline of civilization ... what's next- "'a GUI Can Do Everything' but configuring it to do so is sometimes daunting?"
All 250+ pages of it: http://www.eandem.co.uk/mrw/vim/usr_doc/index.html
Read a chapter a day/week. Dive in and out of the doc every now and then to refresh. There's an incredible amount that can be done easily with vim, without having to install a single plugin or script.
Vi - designed and used by people far off into the distance on the autistic spectrum.
For example, most censors at the FCC use Vim to generate the BEEPs over forbidden words. For everything else, you there is Emacs.
WTF am I doing replying to an AC at 5 A.M on a Friday night?
fail.
I remember seeing a vim hack once, a few years back, where someone used the stdin/paste to make vim animate a picture of ASCII art. :(
Can't find the link, though
Did you know that "FTW" ("for the win") is a direct translation of "Sieg Heil"?
Obviously your problem is that your machine has more than 8 MB of RAM in it; otherwise it'd be running fine just like its name says.
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
The review pans the inclusion of a history chapter in the book. I haven't seen the book's history chapter, so maybe it is not a good one. However, I can say that knowing the history of vi helps enormously if you're trying to "hack" it so I think such a chapter is needed.
By knowing the history of vi you will know that it was built on top of a line editor, ex. That helps the beginner understand why vi is a modal editor and why some commands are available both as ex commands (with a colon preceding them) and as normal mode commands. One of the powerful things about all those ex mode commands is that they are easy to script. You can feed a bunch of ex commands into vim from standard input, thus completely scripting an editing session without learning a bizarre scripting language. (You do however have to learn bizarre ex commands :) This is an easy workaround for some Unix conundrums--that you can't, for example, easily stick text onto the beginning of a file from the command line. I've got shell scripts that do this. (One could also use ed, but again, it helps to know the history of vi to know this stuff.)
Knowing the history also explains other vim oddities. For search, vi uses patterns under which some characters, like curly braces, only have special meaning if they are escaped. When you understand that old Unix utilities used regular expressions that are like this, and that the vi patterns thus resemble the patterns that you use with grep (not egrep) or sed, this makes more sense. It also makes all the vim "magic" settings make more sense.
Also, understanding the history of Unix made it easier for me to understand vim's limitations. For awhile I tried to learn vim script so that I could write scripts that would automatically generate certain text for me. Maybe this would be easy with, say, emacs, but vim script just seemed painful to me--and then it would only work with vim. With time I learned that vi fits in with the Unix toolbox model. Rather than use your editor to generate boilerplate text, it's very easy to generate that sort of thing in a shell script or using m4. Then just load it up into the editor. Vim also uses some external programs, such as ctags.
Unix is a big grab bag of tools that have a long history. I have always found that knowing the history of these tools and where they came from and how they were meant to be used together is enormously helpful.
Penny - plain text accounting
'Vim Can Do Everything' but configuring it to do so is sometimes daunting.
Then why use it in the first place?
It is 2010, not 1990. You do not have to develop on *nix using CLI tools only. There are also many small and simple (i.e. NE http://ne.dsi.unimi.it/ ) CLI editors for network admins who just want to touch up config files.
People say that by learning VI you learn more unix, since much of VI is just a wrapper program for sundry *nix utilities. True, but if you invest in a good multipurpose editor centric IDE like Visual Slick Edit you will never need those things. I've been happily using Slickedit for 11 years on two different operating systems and on about half a dozen different languages.
All professionals have professional expenses. Students have to pay as much for books.
I would spend a few hundred dollars to a tool that will let you do your work without adding work to be able to use the tool.
"Vim Can Do Everything' but configuring it to do so is sometimes daunting."
That was one argument people made in school for using VI instead of EMACS......and they were right.
Vim has about twice as many options as vi did back when I ran it on dumb terminals on a Vax 11/780. My laptop CPU is about 3000 times as fast (per core), and the 4GB RAM is 4x as large as the disk drives on my VAX, or 1000 times as large as the RAM. And yes, running it on top of WinXP is probably tougher than running on top of X Windows, but X ran just fine on a Sun3/60 or 25 MHz 386. (I suppose I should pay more attention and turn off random modes like +farsi, though :-)
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
From the point of view of someone who doesn't remember or want to remember shortcuts, VI is an abomination.
I use VI occasionally when I can't avoid it. You have to know a few commands (:wq, :q!, a, i, x, dd, /) to be able to use it, but at that it is the most annoying system possible.
If possible I use "cat > file" instead.
VIM is supposed to have help, so I gave it a try. Here's my review of VIM
It comes up with a little help screen.
It says a bunch of stuff I don't really want to read--I just want to know how to navigate to a position visible on the screen--something you should be able to do with a mouse.
I see that :help or f1 gives me "on-line help". worth a try.
I hit f1. It splits the screen and gives me a bunch of other help commands. WTF. I'd already be done twice if I had started with notepad!
Wait, it says I can type ":set mouse=a" to get my mouse to work.
Now I'll type in a little bit to see if it works. I know how to do that, it's "i".
I returns "Cannot make changes, 'modifiable' is off.
Screw this, I'm done. :q!
Damn, they did break the one key I knew! :q! ALWAYS quits out. I'll do it again.
There that worked. Crap, so much for this improved VIM functionality, I'll stick with vi in cases of extreme emergency when cat >> file just won't do the job.
Yeah, I realize I could put in a little effort and get much further, but I've already wasted more time just in this session than I could possibly gain back in the next the years by knowing VI inside and out.
The funny thing is that the arguments by the pro-vi guys are just as ridiculous as this.
I do wish all editors had "dd" though.
So.....it can't do what Visual Studio does by default? hmmmm I might keeping staying away from an editor that uses :q then.
Let me know if there are vim plugins for VS so that I can reduce the learning curve and i'll reconsider.
2c
How do I get vim onto my Motorola Droid?
"It's the height of ridiculousness to say for those 9 lines you get hundreds of millions."
Let me know if there are vim plugins for VS so that I can reduce the learning curve and i'll "reconsider."
Let me know about a "professional" that gives more credit to "reduce the learning curve" than to "achieve higher productivity" and I'll show you a moron I certainly won't hire.
He's a guy. A simple google search yielded this:
http://www.schulz.dk/en/blog/
His name is kim schulz, as mentioned on the top of this page.
For starters: vim comes with an optional GUI as well. So it is not just a command line editor. In fact the GUI version is pretty neat.
And secondly Vim just does more. At least more then Eclipse or Net beans does in the edit department. It might not compete against SlickEdit without tons of plug-ins but then a 3+ platform licence cost $649.00. Note that I have use Vim on 5 different platforms - one for which SlickEdit is not even available.
Pro's use emacs. Followers use vim.
:Ni!
The object didn't arrive at its destination, it started at its origin.
The client didn't receive the data, the server sent the data.
You are not in Soviet Russia, Soviet Russia surrounds you.
Saying "I'm going to hack vim (or vi)" is like saying "I'm gonna go bolt some rear spoilers onto my horse-drawn plow."
Just let vi die, already. Put a stake in its heart. Constantly Franken-retrofitting it to be slightly less annoying is a complete waste of time when there are 65 billion real text editors available out there, plenty of them FOSS.
"I hate to ruin..."
Wow! a meagre 218-word paragraph to define "consistency".
Huh? "consistency" is not at all what I just described.
I was making a point about how it's possible for software to have really great facilities to help you learn how to use it - but still be a complicated piece of software to learn.
It's really not very much text. If it's "tl;dr" for you, then just take a fucking hike.
Bow-ties are cool.