SnipMate supports autoit, cpp, c, html, javascript, java, mako, objc, perl, php, python, ruby, sh, _, snippet, tcl, tex, vim and zsh file types by default. Default completion is <tab> key. I found it useful to change <tab> to ex. Ctrl+J:
in ~/.vim/after/plugin/snipMate.vim changed
ino <silent> <tab> <c-r>=TriggerSnippet()<cr> snor <silent> <tab> <esc>i<right><c-r>=TriggerSnippet()<cr>to
ino <c-j> <c-r>=TriggerSnippet()<cr> snor <c-j> <esc>i<right><c-r>=TriggerSnippet()<cr>To use multiple filetypes(as well, as corresponding snippets), you can use whether autoCmd in ~/.vimrc like:
au BufRead *.php set ft=php.html au BufNewFile *.php set ft=php.htmlor modeline like:
/* vim: set ft=html.php: */
Really nice plug-in with intellectual features. E.g. in an HTML file you type:
doctype<c-j>,
and it suggests to choose one of 7 DOCTYPEs:
HTML 4.01 Strict HTML 4.01 Transitional HTML 5 XHTML 1.0 Frameset etc.
Enjoy!
UPDATE
Some extra snippets could be found here.
To create your own snippet clone a .snippet file in ~/.vim/snippets/ and modify it on your needs.
For instance, I've created this one:
$ cat ~/.vim/snippets/sql/s3_localized.snippet INSERT INTO \`s3_localized\` (\`localized_code\`) VALUES ('${1:SOMETHING}'); SET @ins_id:=(SELECT LAST_INSERT_ID()); INSERT INTO \`s3_localized_text\` (\`localized_id\`, \`lang_id\`, \`localized_text\`) VALUES (@ins_id, 1, '${2:rus}'), (@ins_id, 2, '${3:eng}'), (@ins_id, 3, '$3'), (@ins_id, 4, '$3'), (@ins_id, 5, '$3'), (@ins_id, 6, '$3'), (@ins_id, 7, '$3');
It generates
INSERT INTO `s3_localized` (`localized_code`) VALUES ('SOMETHING'); SET @ins_id:=(SELECT LAST_INSERT_ID()); INSERT INTO `s3_localized_text` (`localized_id`, `lang_id`, `localized_text`) VALUES (@ins_id, 1, 'rus'), (@ins_id, 2, 'eng'), (@ins_id, 3, 'eng'), (@ins_id, 4, 'eng'), (@ins_id, 5, 'eng'), (@ins_id, 6, 'eng'), (@ins_id, 7, 'eng');
Ctrl+J moves to the next variable declared in snippet. $-references allow change repeated strings simultaneously(as 'eng' above)
No comments :
Post a Comment