All Projects → tweekmonster → Django Plus.vim

tweekmonster / Django Plus.vim

Licence: mit
🎸 Improvements to the handling of Django related files in Vim

Projects that are alternatives of or similar to Django Plus.vim

Visual Split.vim
Vim plugin to control splits with visual selections or text objects
Stars: ✭ 190 (+31.03%)
Mutual labels:  neovim, vim-plugins
Tmux Complete.vim
Vim plugin for insert mode completion of words in adjacent tmux panes
Stars: ✭ 447 (+208.28%)
Mutual labels:  neovim, vim-plugins
Vim Packager
Vim plugin manager that utilizes "jobs" and "pack" features.
Stars: ✭ 197 (+35.86%)
Mutual labels:  neovim, vim-plugins
Bullets.vim
🔫 Bullets.vim is a Vim/NeoVim plugin for automated bullet lists.
Stars: ✭ 199 (+37.24%)
Mutual labels:  neovim, vim-plugins
Alchemist.vim
Elixir Integration Into Vim
Stars: ✭ 632 (+335.86%)
Mutual labels:  neovim, vim-plugins
Vim Dadbod Completion
Database autocompletion powered by https://github.com/tpope/vim-dadbod
Stars: ✭ 163 (+12.41%)
Mutual labels:  neovim, vim-plugins
Vim Dadbod Ui
Simple UI for https://github.com/tpope/vim-dadbod
Stars: ✭ 315 (+117.24%)
Mutual labels:  neovim, vim-plugins
Targets.vim
Vim plugin that provides additional text objects
Stars: ✭ 2,114 (+1357.93%)
Mutual labels:  neovim, vim-plugins
Tagbar
Vim plugin that displays tags in a window, ordered by scope
Stars: ✭ 5,322 (+3570.34%)
Mutual labels:  neovim, vim-plugins
Evervim
A Modern, Powerful & Modular Vim Distribution
Stars: ✭ 568 (+291.72%)
Mutual labels:  neovim, vim-plugins
Vim Plugins Profile
🕓 Profile Vim's plugins, generate awesome statistics and optimize (n)vim startup time
Stars: ✭ 508 (+250.34%)
Mutual labels:  neovim, vim-plugins
Hot Reload.vim
A (Neo)vim plugin for Flutter to automatically hot reload the project every time a file is saved
Stars: ✭ 33 (-77.24%)
Mutual labels:  neovim, vim-plugins
Context.vim
Vim plugin that shows the context of the currently visible buffer contents
Stars: ✭ 688 (+374.48%)
Mutual labels:  neovim, vim-plugins
Vim Follow My Lead
Vim plugin for showing all your <Leader> mappings in a readable table including the descriptions.
Stars: ✭ 100 (-31.03%)
Mutual labels:  neovim, vim-plugins
Django Treenode
probably the best abstract model / admin for your tree based stuff. 🌳
Stars: ✭ 142 (-2.07%)
Mutual labels:  django
Opssam
opsSAM运维平台 (基于saltstack、cobbler和zabbix接口的集成管理)
Stars: ✭ 143 (-1.38%)
Mutual labels:  django
Jupytext.vim
Vim plugin for editing Jupyter ipynb files via jupytext
Stars: ✭ 142 (-2.07%)
Mutual labels:  vim-plugins
Djangoblog
😱一款基于Django和Boostrap框架的个人博客网站源码
Stars: ✭ 142 (-2.07%)
Mutual labels:  django
Vim Bootstrap
Vim Bootstrap is a generator that provides a simple method of generating a configuration for vim / neovim.
Stars: ✭ 1,870 (+1189.66%)
Mutual labels:  neovim
Coc Vetur
Vue language server extension for coc.nvim
Stars: ✭ 142 (-2.07%)
Mutual labels:  neovim

django-plus.vim


Improvements to the handling of Django related files in Vim, some of which are based on Steve Losh's htmldjango scripts.

Why?

Django support in Vim sucks.

What Sucks? Sucks?
Hard-coded htmldjango filetype for any .html file Yes
HTML indentation Yes
QuerySet completions Yes
settings.py variable completions Yes
Template tag and filter completions Yes
Template file completion for {% include %} and {% extends %} Yes
Template file completion for rendering functions Yes

To help you understand the difference this plugin makes, I used science:

science

As you can see, one line goes up. However, the other line doesn't go up that much. It doesn't get any clearer than that.

Improvements

A summary of improvements to Django development in Vim.

General

  • Django is detected by searching parent directories for clues that indicate the current file is within a Django project.
  • b:is_django is set in any file that's within a Django project. This could be useful for your personal scripts.
  • b:is_django_settings is set if the file is settings.py or if the file is in the same directory as settings.py. (b:is_django will still be set)
  • Optionally append .django to the filetype for files found within a Django project.
  • If a Django project's manage.py script is found, completions will include your settings and templatetags found in INSTALLED_APPS.
  • g:django_filetypes takes a list of glob patterns to append the django filetype to matching files. e.g. *.xml will have the filetype xml.django if the file is found in a Django project.

Python

  • Completions for Django settings when b:is_django_settings is present.
  • Completions for settings. when b:is_django is present in a .py file.
  • Completions for template files when using render(), get_template(), render_to_string(), render_to_response(), or template_name =.
  • QuerySets could be lurking anywhere. That's why QuerySet completions will be included for basically anything after a period.
  • If you are using Ultisnips, Django snippets are enabled and UltiSnips#FileTypeChanged() is called to ensure that :UltiSnipsEdit opens django.snippets by default instead of python.snippets.

HTML

  • The filetype is set to htmldjango when editing HTML files.
  • Basic completions for template tags and filters.
  • Completions for template files when using {% extends %} or {% include %}.
  • Django tags are indented correctly, including custom tags.
  • matchit configuration for Django tags, including custom tags. Additionally, the cursor is placed at the beginning of the tag name.
  • Tag and variable blocks are highlighted within script tags, style tags, and HTML attributes.
  • If you are using Ultisnips, HTML snippets are enabled and UltiSnips#FileTypeChanged() is called to ensure that :UltiSnipsEdit opens htmldjango.snippets by default instead of html.snippets.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].