vim-htmldjango_omnicomplete : htmldjango filetype omnicomplete - completes template tags/filters/variables
script karma |
Rating 13/4,
Downloaded by 2650 |
Comments, bugs, improvements
|
Vim wiki
|
created by |
Michael Brown |
|
script type |
ftplugin |
|
description |
Vim htmldjango autocomplete
An omnicomplete tailored to django templates "tags/variables/filters/templates" I mainly find it useful for completing template and static directory paths. It will also fall back to regular html omnicomplete
Repo: http://github.com/mjbrownie/vim-htmldjango_omnicomplete (star it for updates, feedback appreciated)
Screenshots:
block: https://github.com/mjbrownie/vim-htmldjango_omnicomplete/raw/master/examples/block_eample.png
url: https://github.com/mjbrownie/vim-htmldjango_omnicomplete/raw/master/examples/url_example.png
extends: https://github.com/mjbrownie/vim-htmldjango_omnicomplete/blob/master/examples/extends_example.png
Eg.
1. Filters
{{ somevar|a<c-x><c-o>}} should complete 'add' , 'addslashes'
2. Tags
{% cy<c-x><x-o> %} should complete 'cycle'
3. Load statements
It also should grab any libs you have {% load tag_lib %} in the file.
Although it needs them in INSTALLED_APPS.
{% load <c-x><c-o> %} will complete libraries (eg. 'cache', 'humanize')
4. template filenames
{% extends '<c-x><c-o>' %} will list base.html ... etc
5. url complete
{% url <c-x><c-o> %} should complete views and named urls
6. super block complete
eg {% block c<c-x><c-o> %} to complete 'content' or something defined
in an extended template.
7. static files complete
eg {% static "r<c-x><c-o>" %}
<script src="{% static "<c-x><c-o>" %}" /> - completes js files in static
<style src="{% static "<c-x><c-o>" %}" /> - completes css files in static
<img src="{% static "<c-x><c-o>" %}" /> - completes img files in static
{{ s<c-x><x-o> }}
8. optional variable name completion (placeholder)
will complete any maps defined in the python htmldjango_opts['variable']
dict list. See below for info.
Where possible info panels show the functions __doc__. Most of the
internal ones are decent.
Requires:
+python
I have this working on command line vim for linux and mac (I had to compile my own for osx with ./configure --enable-pythoninterp --with-features=huge).
also I have DJANGO_SETTINGS_MODULE set in my vimrc. please look at my dotfiles if you are having trouble
https://github.com/mjbrownie/dotfiles/blob/master/_vimrc#L312-L340
SETUP
1. I like pathogen/Vundle clone into ~/.vim/bundle directory.
Alternately just stick the vim file in your ~/.vim/autoload/ dir.
2. in .vimrc set the omnifunc Eg.
au FileType htmldjango set omnifunc=htmldjangocomplete#CompleteDjango
3. Optional: At the moment you need to force a html flavour for htmlcompletion
in .vimrc
let g:htmldjangocomplete_html_flavour = 'html401s'
:verbose function htmlcomplete#CheckDoctype for DocType details
Choices:
'html401t' 'xhtml10s' 'html32' 'html40t' 'html40f' 'html40s'
'html401t' 'html401f' 'html401s' 'xhtml10t' 'xhtml10f' 'xhtml10s'
'xhtml11'
'html5' if you have html5.vim
TESTING
django needs to be in sys.path along with DJANGO_SETTINGS_MODULE in your
environment.
To test...
:python import django
should not result in an error
:python from django.conf import settings; print settings.INSTALLED_APPS
:python from django.conf import settings; print settings.TEMPLATE_DIRS
should show the apps template dirs you need
I've only tested this on a mac with vim 7.3 and django 1.4 |
|
install details |
pathogen and github clone recommended as updates will be less frequent here.
cd ~/.vim/bundle && git clone git@github.com:mjbrownie/vim-htmldjango_omnicomplete.git
or extract and copy .vim file to ~/.vim/autoload |
|
script versions (upload new version)
Click on the package to download.
ip used for rating: 18.97.14.83
|