Random notes from mg

a blog by Marius Gedminas

Marius is a Python hacker. He works for Programmers of Vilnius, a small Python/Zope 3 startup. He has a personal home page at http://gedmin.as. His email is marius@gedmin.as. He does not like spam, but is not afraid of it.

Wed, 09 Dec 2009

Unix is an IDE, or my Vim plugins

Unix is an IDE. I do my development (Python web apps mostly) with Vim with a bunch of custom plugins, shell (in GNOME Terminal: tabs rule!), GNU make, ctags, find + grep, svn/bzr/hg/git.

The current working directory is my project configuration/state. I run tests here (bin/test), I search for code here (vim -t TagName, find + grep), I run applications here (make run or bin/appname). I can multitask freely, for example, if I'm in the middle of typing an SVN commit message, I can hit Ctrl+Shift+T, get a new terminal tab in the same working directory, and look something up. No aliases/environment variables/symlinks/scripts making changes to config files. I can work on multiple projects at the same time. I can work remotely (over ssh).

Gary Bernhardt's screencasts on Vimeo show how productive you can get if you learn Vim and tailor it to your needs. I have Vim scripts that let me

Some of these come from www.vim.org, some I've written myself, some I've taken and modified a little bit to avoid an irritating quirk or add a missing feature. Some things I don't have (and envy Emacs or IDE users for having -- like an integrated debugger for Python apps, and, generally, integration with other tools, running in the background).

It's been my plan for a long time to polish my plugins, release them somewhere (github? bitbucket? launchpad?) and upload to vim.org, but as it doesn't seem to be happening, I thought I'd at least put an svn export of my ~/.vim on the web.

posted at 01:23 | tags: , , | permanent link to this entry | 5 comments
I agree with you completely. Bash + Vim + Python = everything the coder needs.

However, I've found that when working with monstrous platforms, such as .Net, intellisense (via MonoDevelop for instance) allows me to retain my sanity.
posted by Simon Wittber at Wed Dec 9 06:30:52 2009
Interesting. And, I know others think this way as well (John Costigan -- Maemo Mapper -- told me that all he uses is Vim). Personally, I just could never remember everything I'd need to remember to do this. I use a text editor for all of my html/css/js work now, but that's only after many, many years of using more robust methods. So, kudos to you. :) I wish I could do that.
posted by timsamoff at Wed Dec 9 19:19:32 2009
Ctrl+Shit+T.
i like that
posted by required at Thu Dec 10 09:41:44 2009
Hi,

thanks for this list of vim plugins... and for sharing your .vim directory :)  Some pretty cool stuff by the looks of it.  Will have to check them all out later.

One addition I have around always, is an ipython shell or two open for each project.
posted by Rene Dudfield at Thu Dec 10 14:22:04 2009
I try more complicated editors from time to time, but vim is 90% there "out of the box", add in a simple .vimrc file and you're set. If you do any contract work, it's a godsend.

With compiled languages, I've tried stuff like Eclipse from time to time, but after you do something more complex than the samples, you wind up playing "hunt the setting." Even with the kludgiest makefile, you can just jam some echo statements in there to find out why the compiler is getting some option you didn't want.
posted by ben at Fri Dec 11 17:25:32 2009

Name (required)


E-mail (will not be shown)


URL


Comment (some HTML allowed)