是否存在为Django模板提供这些文本对象的插件?例如,如果我有以下文本,则在HTML / XML中
<p>This is some text.<p>
我的光标位于标签内的任何位置,我可以使用cit
更改标签内的文字。我正在为Django模板寻找类似的东西。例如,使用文本
{% block title %}This is the title{% endblock %}
我想要同样的行为。如果什么都不存在,那么任何vimscripters都知道这是否可能并愿意提供一些提示?
谢谢!
答案 0 :(得分:2)
查看Django官方文档。 有一个“使用带Django的Vim”部分。
https://code.djangoproject.com/wiki/UsingVimWithDjango
和环绕映射部分。
以下是摘录:
let b:surround_{char2nr("v")} = "{{ \r }}"
let b:surround_{char2nr("{")} = "{{ \r }}"
let b:surround_{char2nr("%")} = "{% \r %}"
let b:surround_{char2nr("b")} = "{% block \1block name: \1 %}\r{% endblock \1\1 %}"
let b:surround_{char2nr("i")} = "{% if \1condition: \1 %}\r{% endif %}"
let b:surround_{char2nr("w")} = "{% with \1with: \1 %}\r{% endwith %}"
let b:surround_{char2nr("f")} = "{% for \1for loop: \1 %}\r{% endfor %}"
let b:surround_{char2nr("c")} = "{% comment %}\r{% endcomment %}"
将上述内容放在〜/ .vim / ftplugin / htmldjango.vim中。
可视模式中的示例(首先选择一些文本):
PS:另一种可能性是使用eclim(vim + eclipse)支持Django项目和模板编辑http://eclim.org/vim/python/django.html,但这个更重。
答案 1 :(得分:1)
django-template-textobjects插件(https://github.com/mjbrownie/django-template-textobjects)允许您实现此目的。它添加了一系列文本对象(例如,用于Django块的db,用于Django for循环的df等)。
例如,cidb允许您更改以下内容:
{% block stylesheets %}My stylesheets here{% endblock %}
该插件依赖于另一个插件vim-textobj-user(https://github.com/kana/vim-textobj-user),所以请记住先安装它。
答案 2 :(得分:0)
您可能需要为此编写自己的文本对象。有关如何完成此操作的示例,请参阅textobj-rubyblock和vim-indent-object。