最近の更新

関連


その他いろいろ

MODxでつくる! 最強のCMSサイト カバー
MODxでつくる! 最強のCMSサイト

はやくMODx 2.0でないかなあ

qtmplsel.vim

ファイル作成時にテンプレートを選択(式展開機能つき)
初出:2009年09/07 更新:2009年09/07

この文書のキーワード: なし

概要

vimでファイルを新規作成する際、ファイルタイプに応じてテンプレート(orスケルトン)を自動的にロードするためには、.vimrcに以下のような設定を加えることが多いと思います。

autocmd BufNewFile *.py 0r ~/.vim/template/template.py
しかし、決まり切った内容を拡張子ごとに用意するのも芸がなく、 またテンプレートを使いたくない場合や、複数のテンプレートから選びたい場合に対応できません。 そこで、~/.vim/template にあるテンプレートを(複数あればリストアップし) ロードするか否か選択できるプラグイン、qtmplsel.vimを書いてみました。

インストール

  1. qtmplsel.vim - Quick Template Selector : vim online から最新版をダウンロード
  2. ダウンロードしたスクリプトを $VIMRUNTIME/plugin か ~/.vim/plugin に入れます。
  3. Vimを起動すれば自動的に読み込まれます。

使用方法

:e コマンドや vim の起動時に存在しないファイル名を入力して新規作成すると、

ファイルタイプ
ft=pythonなら サーチパス/python_*
拡張子
*.pyなら サーチパス/*.py
ファイル名
ファイル名=Makefile なら サーチパス/Makefile_*
に該当するテンプレートを ~/.vim/template から列挙し、一つ以上該当するものがあればリストを表示します。 リスト上では k(上) / j(下) で項目を選択し、 Enter で決定、 q でキャンセル(ロードしない)となります。 また、グローバル変数g:qts_templatedirを設定することで、任意の場所をテンプレートファイルのサーチパスに設定することができます。

式展開

式展開機能を用いることで、柔軟な処理が可能になります。

テンプレートファイルに含まれる@{@@}@で囲まれた部分をvimの式として評価し、置換します。

例えば、
// \\file @{@expand('%:t')@}@
// \\date @{@strftime('%Y-%m-%d')@}@
class @{@expand('%:t:r')@}@ {
};
のようなcpp用テンプレートをtestclass.cppの作成時に適用すると、以下のように展開されます。
// \\file testclass.cpp
// \\date 2009-09-07
class testclass {
};

使用例

qtmplsel.vim screenshot

リスト表示部分などQuickBufを参考にしました。