There will be multiple branches. The first branch will be the basic branch. The basic branch will stay true to vim defaults, adding PEP008 and basic onmicomplete, folding and path-hacking for django settings with few/no remaps. I will branch from here with a more featureful config with nerdtree, supertab and more.

The idea will be that one can check it out and symlink to $VIMRUNTIME and change configs just by checking out a different branch.

Current details of basic

  • Syntax highlighting

  • Indention

    • simple use of the following works:

      if has("autocmd")
        filetype plugin indent on

    I uncommented this from my global /etc/vim/vimrc

  • Folding

    • Just going to use indentation folds from the default .vimrc:

      :help fold
      zM to fold everything
      zR to unfold everything
      za to toggle the current fold
      zA to recursively toggle the current fold
      Everything is unfolded to start.
  • Code completion

    • Going with regular http://www.vim.org/scripts/script.php?script_id=1542:

      still <c-x><c-o> for omnicomplete (may remap to <s-tab>)
      still <c-p> for keyword completion (may remap to <tab>)
    • :help preview

      To see how to do things like close the preview viewport (:pc)

  • Django settings:

    There are two ways that you can get the settings module imported and be able to omnicomplete modules that rely on DJANGO_SETTINGS_MODULE:

    1) You can be in an environment with django and settings.py in the CWD, parent or grandparent
    2) You can be inside a virtualenv that contains pinax

supertab branch

The same as above except that code completion is context sensitive and you can get it with <tab>. So, if you are in insert mode and you have:

import django

you can start typing django and complete it with keyword completion:


then you can type . and <tab> again and get omnicompletion:


this will give you a dropdown between conf, core and contrib