Vim-Django is a ViM script that helps manage a django app(s). It has wrapping's
for the django-admin.py
, your projects manage.py
and some helper
commands. It also has some quick ways to find templates, edit related files
in a app, create new apps, and help manage django while using ViM.
I recommend using pathogen or vundle to install this script. Else, you can
put the django.vim
in the plug-ins directory. This script does require
python to be compiled in.
You can check by doing :version and looking for +python
let g:django_projects = '~/Projects' "Sets all projects under project
let g:django_activate_virtualenv = 1 "Try to activate the associated virtualenv
let g:django_activate_nerdtree = 1 "Try to open nerdtree at the project root.
If you want more advanced searching for your projects or the default is to slow for you to use. You can add more advanced filtering.
For example I use a source directory in each of my projects. So I dont want it to look through each of my virtualenv directorys, assets, or other project files.
So what we can do is this
g:django_projects_search_exp = '*/source'
this will let us look in the source
folder for each project. You can tweak this to be what you want. This just uses
the vim file path filters.
DjangoAdmin
will run any command through the django-admin.py
command.
DjangoManage
will run the management command for the project
DjangoProjectActivate
will activate the project. This will go through
your g:django_projects
and find all the django projects. It will also
set up DJANGO_SETTINGS_MODULE
in your environment and the directory
where the settings file is stored in your PYTHONPATH
.
DjangoCreateApp
will create a new app under your projects base. It will
autocomplete the path. It just needs is a python path such as,
colinbits.apps.new_app
this will be created in the folder colinbits,
apps, then run the django-admin.py
to create the app there.
There are mappings for easily editing related django files while working on a
app. They all can be changed if you don't like how they are currently mapped.
There are mappings for (v|views), (u|urls), (a|admin),
and (t|tests). If you want to remap these you can call the function
django#apps#edit('name_of_file.py', 'split')
and it will open up
the file it fines in a split.
g:django_projects
is where your django projects are located.
g:django_activate_virtualenv
when true will activate a virtualenv that
starts with the same name. An example being. colinbits, is the site, and the
virtualenv being colinbits.com.
Since not everyone uses the default settings file vim-django will allow you to
add a custom function to activate any project. In your vimrc you can define a
function called ActivateProject
it needs to accept one argument. From here
you can have it activate the project.
NERDTree:
g:django_activate_nerdtree
when set to 1 will launch nerdtree when
activating the django project.
VirtualEnv:
g:django_activate_virtualenv
when set to 1 will activate the virtual
env that starts with the same name.
- Working with virtualenv's
- I actully reccomend installing vim-virtualenv