Установка gVim
на всех платформах Вы используете.
Тогда пробегает vimtutor (:help vimtutor
или vimtutor
в командной строке).
Часы следующая лекция и следуют ее совету: 7 Привычек Для Эффективного Редактирования текста 2.0
я говорю, что Вы определенно хотите начать использовать его для всего своего редактирования. Если Вы боитесь, что потеря производительности тогда занимает выходные для осуществления его твердый (я однажды сделал это для переключения на Дворака от стандартного расположения букв на клавиатуре и имел мою производительность достаточно высоко к понедельнику и сумел придерживаться его после).
Это стоит усилия, и Вы не оглянетесь назад!
Я рекомендую использовать фильтры Django .
Фрагменты Django предоставляют фильтр шаблона разделения , который можно использовать, например:
{% load listutil %}
<div class="grid_8 alpha">
{% for sport in sports|partition:"2"|first %}
<!-- Blah Blah -->
{% endfor %}
</div>
<div class="grid_8 omega">
{% for sport in sports|partition:"2"|last %}
<!-- Blah Blah -->
{% endfor %}
</div>
Я думаю, вам придется создать свой собственный тег шаблона для разделения запросов. Я бы сделал что-то вроде.
from django.template import Library, Node, TemplateSyntaxError
from restaurants.forms import MenuItemForm
class Split(Node):
def __init__(self, queryset, split_count=2, basename=None):
self.queryset_name = queryset
self.split_count = split_count
self.basename = basename if basename else queryset
def render(self, context):
qs = context[self.queryset_name]
qs_break = len(qs)/self.split_count
for x in xrange(0, self.split_count-1):
context["%s_%i"%(self.basename, x+1)] = qs[qs_break*x:qs_break*(x+1)]
context["%s_%i"%(self.basename, x+2)] = qs[qs_break*x+1:]
return ''
def split(parser, token):
"""
Call from template will be
{% split <queryset> on <count> as <name> %}
"""
tokens = token.split_contents()
if len(tokens) > 6:
raise TemplateSyntaxError("Too many Tokens")
#Do various tests to make sure it's right.
return Split(tokens[1], tokens[3], tokens[5])
split = register.tag(split)
Обратите внимание, что я на самом деле не тестировал этот код, поэтому он может сильно потерпеть неудачу, но он должен указать вам правильное направление, чтобы убрать эти вещи из вашего поля зрения.