2012-05-07 14 views
4

Djangoテンプレートにこれらのテキストオブジェクトを提供するプラグインは存在しますか?私は次のテキストDjangoテンプレート用のVim内部タグブロック

<p>This is some text.<p> 

を持っている場合、私のカーソルがどこにでもタグの内側に配置される例えば、HTML/XMLで、私は、タグ内のテキストを変更するためにcitを使用することができます。私はDjangoのテンプレートに似たものを探しています。たとえば、テキストの場合

{% block title %}This is the title{% endblock %} 

私は同じ動作をしたいと思います。何も存在しない場合、vimscriptersはこれが可能であり、いくつかのヒントを与えることを望んでいるかどうか知っていますか?

ありがとうございます!

+0

@RandyMorrisリンクありがとうございました –

+0

@RandyMorris古い質問を整理します。それを回答として投稿できますか?それは私が解決策に持っている最も近いものです。 –

+0

完了し、古い質問を再訪していただきありがとうございます。私たちはあなたのようにもっと必要です。 –

答えて

1

django-template-textobjectsプラグイン(https://github.com/mjbrownie/django-template-textobjects)でこれを実現できます。一連のテキストオブジェクトを追加します(例えば、Djangoブロック用のdb、Django用のdfなど)。

例えば、CIDBはあなたの内容を変更することができるようになる:

{% block stylesheets %}My stylesheets here{% endblock %} 

プラグインは別のプラグイン、VIM-textobjユーザー(https://github.com/kana/vim-textobj-user)に依存するので、その最初をインストールすることを忘れないでください。

2

公式のDjangoのドキュメントをご覧ください。 「VimとDjangoを使用する」セクションがあります。

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に上記を入れてください。ビジュアルモードで

例(最初のいくつかのテキストを選択):ブロック

  • タイプSI用

    • タイプSvで又はS {変数
    • ため
    • タイプSbを if文の場合
    • タイプsw声明で
    • タイプ他のテンプレートタグのSの%

    PS文の

  • タイプのコメント
  • タイプSfのためのSc:別の可能性はの使用でありますeclim(vim + eclipse)はDjangoプロジェクトとテンプレート編集http://eclim.org/vim/python/django.htmlをサポートしていますが、それはもっと重いです。

  • +0

    はい。私はこれを前に見ましたが、これは私が求めていたものです。まだ素晴らしいです。ありがとう:) –

    0

    おそらく、このために独自のテキストオブジェクトを作成する必要があります。これを実行する方法の例については、textobj-rubyblockおよびvim-indent-objectを参照してください。

    +0

    ありがとうランディ!これをすることに慣れていないが、私がすれば、私はここに投稿します。 –

    関連する問題