コードを書き始めるとき、毎回同じことを書くのは時間の無駄ですよね。
典型例がソースコードのライセンス条文だったり、HTMLの雛形タグだったり、Markdownの章立てだったりすると思います。
.vimrcを設定する
vimであれば、こんな風な設定を.vimrc
に書いといて、テンプレートとなるファイルを${HOME}/.vim/template
に置くだけで無駄を省くことができます。
autocmd BufNewFile *.py 0r $HOME/.vim/template/python.txt
autocmd BufNewFile *.md 0r $HOME/.vim/template/markdown.txt
autocmd BufNewFile *.uml 0r $HOME/.vim/template/plantuml.txt
plantumlソーステンプレートを作成する
特にオススメなのがplantumlソースのテンプレート。
こんな形で予め網羅的に書いといて、.vimrcと一緒に適当なVMSにpushしておくと良いです。
' sequence diagram
@startuml
hide footbox
actor Foo1
boundary Foo2
control Foo3
entity Foo4
database Foo5
Foo1 -> Foo2 : To boundary
Foo1 -> Foo3 : To control
Foo1 -> Foo4 : To entity
Foo1 -> Foo5 : To database
@enduml
' class diagram
@startuml
scale 800 width
Class01 <|-- Class02
Class03 *-- Class04
Class05 o-- Class06
Class07 .. Class08
Class09 -- Class10
Class11 <|.. Class12
Class13 --> Class14
Class15 ..> Class16
Class17 ..|> Class18
Class19 <--* Class20
@enduml
ソースファイルヘッダのライセンス条文をテンプレート化する
以下はPythonの例ですが、予めライセンス条文を埋め込んでおくと楽ちんです。
setup.py
をclassifiers付きでテンプレート化しておくのもいいかもしれませんね。setup関数引数仕様は多すぎて覚えきれないので…。
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Copyright 2016 Takashi Ando - http://blog.rinka-blossom.com/
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import os
if __name__ == "__main__":
print(os.sys.path)
Markdown章立てをテンプレート化する
Markdownドキュメントの決まりきった構成を予め入れておけば、かなり楽になります。
# Description
This is ...
# System design
* hoge
* detail
* hogehoge
* detail
# Directory structure
* documents
* Overview, Schematics, etc.
* code
* C/C++ source code working on Arduino.
まとめ、その他
他にもc/c++、html、css、jsや、PythonのMANIFEST.inなんかもテンプレート化しておくと、とても快適なのでオススメです。
vim以外のエディタにも大抵備わっている機能だと思いますけどね^^;