I would like to be able to add a hook to my setup.py that will be run post-install (either when easy_install\'ing or when doing python setup.py install).
In my proje
It depends on how the user installs your package. If the user actually runs "setup.py install", it's fairly easy: Just add another subcommand to the install command (say, install_vim), whose run() method will copy the files you want in the places where you want them. You can add your subcommand to install.sub_commands, and pass the command into setup().
If you want a post-install script in a binary, it depends on the type of binary you are creating. For example, bdist_rpm, bdist_wininst, and bdist_msi have support for post-install scripts, because the underlying packing formats support post-install scripts.
bdist_egg doesn't support a post-install mechanism by design:
http://bugs.python.org/setuptools/issue41
As a work-around, you could set the zip_ok option to false so that your project is installed as an unzipped directory, then it will be a little easier for your users to find the editor config file.
In distutils2, it will be possible to install things to more directories, including custom directories, and to have pre/post-install/remove hooks.