Two decades of productivity: Vim's 20th anniversary
arstechnica.com
arstechnica.com
So much of what I rely on in my Vim customizations is pretty new, and so many of those plugins are new themselves. The core of Vim is timeless (or, in Tim Pope's words, "Vim is forever"), but everything that I plug into it to make it the essential piece of software it is for me (including much of Mr. Pope's work) is very recent.
All of the "sync vim plugins from github" scripts + combined with Pathogen have made using and trying plugins much easier.
Github + better visibility have perhaps raised the overall quality of plugins by making it easier to copy and extend existing plugins.
I'm happy with the renewed interest and still learning new things in Vim all the time after 5-6 years of using it.
I like to think learning Vim akin to learning a musical instrument. It's not easy, the learning curve is very steep and it forces you to think about writing code in a completely different way. But once you get the hang of it, the power available to you is absolutely incredible and you'll code with efficiency never thought possible.
My 2 cents.
In fact, this reminds me French painter Braque being shown a fake Braque, he said: "this is not my work, it is beautiful". What I mean is that "beautiful" in the common sense, the one that applies to clothes, girls, gadgets (including Apple's), commercial movies, 3D games, etc., this superficial aesthetic quality not important.
In this sense, Vim, with it's fixed width font, black background, pure-text help, etc. is certainly not beautiful, and therefore a bit of a stranger on a Mac where, apparently, so much money and neuronal activity has been spent to beautify its OS, its casing, its font aliasing, every single icon and even its boxing.
Gosh, look at the Vim logo and tell me by which miracle it can have so much sex-appeal in a Mac environment? (Or has it? dasil003 says no in an uncle comment, maybe he is right.)
Notice how I said it 'can be'. Out of the box, Vim is not very attractive, but with a bit of work it actually looks rather nice (yes, I did modify the application icon, but that's not really what I want to get at here).
Some of this beauty is subjective due to the syntax highlighting used, configuration of invisibles, etc, but that's configurable and therefore can be customized to your liking.
There are clean and elegant fixed with fonts, which again, you can choose whichever you prefer.
What I meant by simple was the complexity (or lack thereof) of the UI. It only shows you some basic information that is readily important, everything else is hidden away in various keyboard shortcuts. This makes it more complex to use, but it also means the beauty of your work, the code, is at the forefront with little distractions. Hell, I even turn off scrollbars.
At the risk of starting a discussion of opinions over my choice of syntax highlighting, here's a screenshot of my vim setup:
http://dl.dropbox.com/u/18782/macvim.png
I don't really understand how you can call this ugly, unless you're referring to my taste in syntax highlighting.
So, my first point still hold, where Textmate is a ease, Vim is a kind of an intruder in a Mac / Ruby / Designer-first set-up.
Vim does EXACTLY that. It doesn't add silly buttons that require you to remove your hands from the keyboard to the mouse to interact with. It doesn't add silly gradients that get in the way of showing you text. Aesthetically it's incredibly simple, and interactively it's incredibly complex, but IN A GOOD WAY. Not everything, especially tools, should be easy to use and learn. A well designed application knows its target and exploits it. Vim does exactly that. It doesn't mean it's a catch all tool for everyone, generally those kinds of tools end up half assed.
And for the record, I am actually a designer, I used to use TextMate, I now mostly use Vim. The UIs are similar in their sparseness. The 2 small beefs I have with Vim is the title bar text being overly verbose and and the rounded corners added by Lion on the bottom are rendered a bit glitchy.
TextMate on the other hand, while a decent text editor, has perhaps the most hideous project drawer around. Wait, actually, TextMate was never 'designed' as you describe it either. It just uses built using Mac OS libraries. I would think that if you were going to harp on design so much you would at least bring up the more 'designed' text editors, like Coda and Espresso, not TextMate.
In my case I probably never would have switched if TextMate 2 hadn't been extended vaporware. What it made me realize is that I'm fine using a commercial OS like OS X, or a trendy framework like Rails as long as it's suiting my needs in the short-term. But an editor is my core tool across time and space. I need it to be available on any platform, and be well-suited to any language I might learn in the future, working well over an SSH shell is also a huge bonus (and how I got my feet wet in vim 15 years ago). I appreciate aesthetics, but it doesn't trump pragmatism, and I think many rubyists feel the same way.
OS X is popular among hackers because it's both a Unix-like and polished/supported enough to use as a "serious" workstation (not that Linux or *BSD can't make a decent desktop, but most would rather spend time writing code than config files).
It's really just about having an operating system that provides everything you need without having to worry about it, because as a programmer your time belongs with the applications. And when it comes to applications, you choose the right tool for the job (enter vim).
That's why I use Ubuntu.
Personally, I love VIM (and I would quit my job if I were forced to use anything else), I made a donation a few years ago, it's time that I made another one.
(seriously, happy birthday vim, it wouldn't be nearly as fun of a holy war without you :) )
I was actually wondering about that, something felt wrong about vi only being 20, but not enough to actually look it up. And yeah, I was using the '73-'74 TECO macros date for emacs.
If I live to ninety and lose my mind, I will still be able to type in Vim.
:help style-changes
The basic steps to make changes to the code:
1. Adjust the documentation. Doing this first gives you an impression of how
your changes affect the user.
...
Are you blown away yet? The first step in hacking on vim is to hack on the docs. This has been true since the start. Many's the hour I've spent bouncing around in Vim's incredible docs, and I have no doubt it has encouraged more contribution from more hackers.[1] It can always be better, but the amount of time i spend searching random vim stuff outside the official documentation is trivial, particularly when compared against most other tools I use.
I'm OK with having an IDE window hiding behind my Vim window, to switch to for when I need to click on a Build button, or a built-in debugger to use on occasion. I just absolutely want to have my files open up in Vim when it's time to manipulate text.
This used to be possible in Xcode and it was taken away with Xcode 4. (I'm unaware of any workaround, though I will go hunting for one next time I am on an iOS project)
I long ago gave up on any kind of Vim/vi plugin to anything. My first inclination, when I have to use a tool that wants to own the text, is to open Vim and the other, and figure out a way to re-load when I move to the other.
I just feel really bad for anyone who hasn't started using a plugin-manager with vim, and think it's crazy that this functionality isn't built in yet. Smooshing everything in together in ~/.vim was/is so archaic
To install:
1) untar/git-clone/whatever
2) there is no 2.
To uninstall:
1) rm -Rf foo
2) there is no 2.It really is a thing of beauty.
let g:pathogen_disabled = []
makes an exclusion list to disable without actually removing a plugin.As far as I understand it, grep was named for the :g/.../p sequence one can do with Vi's global command; that is "global-regex-print".
It's much older than vi (1976 vs 1973):
I believe it's more useful on Windows machines, which for some reason usually come without preinstalled grep.
Here's the thing: I'd like to change my style of work from using Windows/OSX to using VM with Ubuntu server or some Linux without X installed (browser testing is done outside the VM, of course).
Some of the tools/tech I aim to use: PHP, Python(Django), Ruby(Rails), PostgreSQL(MySQL), JS, HTML, CSS, C, and maybe Java (once in a while).
Now, Eclipse has spoiled me a lot (like, really really a lot: 90% of my time is spent using keyboards and 10% on using the mouse. I know a lot of shortcuts to make me very productive navigating a large multi-projects enterprise Java app from XML[Maven,Spring], CSS, JSP, to JavaScript).
I can jump from JSP straight to the Java class if there's a Scriptlet there.
I can jump from Spring XML configuration to the implementation class and all with one key.
I can run JUnit tests easily without using mouse.
Refactor is a breeze.
I can add and dive into 3rd-party library code (let's say spring-core or even hibernate) easily via Maven + pom.xml (m2clipse plugin will download the 3rd-party library source code provided the jar exist in the repository as soon as you try to see the implementation code of 3rd-party library).
Pretty much doing everything almost without having to leave Eclipse.
These days, I want to try the other ecosystems (RoR, Django). How can I recreate such environment and workflow using VIM or Emacs (I don't mind learning other tools such as ctags).
Give me your input HN-ers! :)