aboutsummaryrefslogtreecommitdiff
path: root/doc/sonictemplate-vim.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/sonictemplate-vim.txt')
-rw-r--r--doc/sonictemplate-vim.txt182
1 files changed, 182 insertions, 0 deletions
diff --git a/doc/sonictemplate-vim.txt b/doc/sonictemplate-vim.txt
new file mode 100644
index 0000000..4295981
--- /dev/null
+++ b/doc/sonictemplate-vim.txt
@@ -0,0 +1,182 @@
+*sonictemplate-vim.txt* SonicTemplate for Vim
+
+ -------------------------------------------------------
+ SonicTemplate: hi speed coding method
+ -------------------------------------------------------
+
+Author: Yasuhiro Matsumoto <mattn.jp@gmail.com>
+WebSite: http://mattn.kaoriya.net/
+Repository: http://github.com/mattn/sonictemplate-vim
+Site: http://mattn.github.com/sonictemplate-vim
+License: BSD style license
+
+==============================================================================
+CONTENTS *sonictemplate-vim-contents*
+
+Introduction |sonictemplate-introduction|
+Install |sonictemplate-install|
+Tutorial |sonictemplate-tutorial|
+Customize |sonictemplate-customize|
+Write Your Template |sonictemplate-writetemplate|
+
+==============================================================================
+INTRODUCTION *sonictemplate-vim-introduction*
+
+|SonicTemplate| is easy and high speed coding method.
+
+ * Choose template for the filetype
+ * Few typings.
+ * Flexible customization.
+
+==============================================================================
+INSTALL *sonictemplate-vim-install*
+
+Install the distributed files into Vim runtime directory which is usually
+~/.vim/, or $HOME/vimfiles on Windows.
+
+If you install pathogen that provided from Tim Pope, you should extract the
+file into 'bundle' directory.
+
+==============================================================================
+TUTORIAL *sonictemplate-vim-tutorial*
+
+For example, you are writing C++ file.
+
+1. Create main function
+
+ Open new C++ file, and type following.
+>
+ :Template boost-main
+<
+ Then you can see following.
+>
+ #include <iostream>
+ #include <string>
+ #include <boost/foreach.hpp>
+
+ int
+ main(int argc, char* argv[]) {
+ _
+ return 0;
+ }
+<
+ The cursor is in the position of |_|.
+
+2. Add foreach loop
+
+ Type following.
+>
+ :Template boost-for
+<
+ Then you will be asked like following.
+>
+ variable:
+<
+ Then type "foo".
+>
+ #include <iostream>
+ #include <string>
+ #include <boost/foreach.hpp>
+
+ int
+ main(int argc, char* argv[]) {
+ BOOST_FOREACH(auto x, foo) {
+ _
+ }
+ return 0;
+ }
+<
+3. Add std::cout << xxx << std::endl;
+>
+ :Template cout
+<
+ Answer "x" for the question "string:".
+>
+ #include <iostream>
+ #include <string>
+ #include <boost/foreach.hpp>
+
+ int
+ main(int argc, char* argv[]) {
+ BOOST_FOREACH(auto x, foo) {
+ std::cout << x << std::endl;
+ }
+ return 0;
+ }
+<
+==============================================================================
+CUSTOMIZE *sonictemplate-vim-customize*
+
+You can modify template directory for your-self templates.
+>
+ let g:template_vim_template_dir = '/path/to/your/template/directory'
+<
+==============================================================================
+WRITE YOUR TEMPLATE *sonictemplate-vim-writetemplate*
+
+Templates are stored in the directory that "g:sonictemplate_vim_template_dir"
+variable specified. On unix, directory structure is following.
+Note that I'm using pathogen-vim.
+>
+ ~/.vim/bundle/sonictemplate-vim
+ plugin
+ sonictemplate.vim
+ doc
+ sonictemplate.txt
+ template
+ go ... filetype go
+ base-main.go ... base main
+ base-package.go ... base package
+ snip-goroutine.go ... snippet for goroutine
+ ...
+ perl ... filetype perl
+ base-package.pl ... base package
+ base-script.pl ... base script
+ snip-dbi-connect-sqlite.pl ... snippet for DBI/SQLite
+ ...
+
+1. The filename have following rule.
+
+ |[kind]|-|[name]|.|[extension]|
+
+ |[kind]| 'base' or 'snip' should be used.
+
+ 'base' is used when buffer is empty.
+
+ |[name]| template name
+
+ Words in the name must join with '-'.
+
+ |[extension]| file name extension like ".c".
+
+ If several extensions are exists in same directory, the first found is used.
+
+2. Template can have some keywords.
+
+ |{{_name_}}| the filename without extension.
+
+ If you are opening "foo.pl" for perl, {{_name_}} become "foo".
+
+ |{{_cursor_}}| : cursor position.
+
+ When expanded template, cursor will be moved to there.
+
+ |{{_input_:var}}| : ask the value of "var".
+
+ When expanded template, cursor will be moved to there.
+
+ |{{_expr_:xxx}}| : expression in vimscript.
+
+ For example: "Current Time:|{{_expr_:strftime('%c')}}|" will be
+>
+ Current Time: 2011/10/27 20:19:00
+<
+ |{{_if_:expr;foo;bar}}| : ternary operator
+
+ For example: When today is saturday,
+ "Today is |{{_if_:strftime('%w')%6;OrdinaryDay;Holiday}}|" will be
+>
+ Today is Holiday
+<
+==============================================================================
+vim:tw=78:ts=8:ft=help:norl:noet:fen:fdl=0: