]> git.rmz.io Git - dotfiles.git/commitdiff
vim: setup UltiSnips
authorSamir Benmendil <samir.benmendil@gmail.com>
Thu, 4 Dec 2014 20:42:38 +0000 (20:42 +0000)
committerSamir Benmendil <samir.benmendil@gmail.com>
Thu, 4 Dec 2014 20:42:38 +0000 (20:42 +0000)
vim/ultisnips/c.snippets [new file with mode: 0644]
vim/ultisnips/cpp.snippets [new file with mode: 0644]
vim/ultisnips/snippets.snippets [new file with mode: 0644]
vim/ultisnips/vim.snippets [new file with mode: 0644]
vim/vimrc

diff --git a/vim/ultisnips/c.snippets b/vim/ultisnips/c.snippets
new file mode 100644 (file)
index 0000000..618bfe3
--- /dev/null
@@ -0,0 +1,154 @@
+###########################################################################
+#                            TextMate Snippets                            #
+###########################################################################
+
+priority -50
+
+snippet def "#define ..."
+#define ${1}
+endsnippet
+
+snippet ifndef "#ifndef ... #define ... #endif"
+#ifndef ${1/([A-Za-z0-9_]+).*/$1/}
+#define ${1:SYMBOL} ${2:value}
+#endif
+endsnippet
+
+snippet #if "#if #endif" b
+#if ${1:0}
+${VISUAL}${0}
+#endif
+endsnippet
+
+snippet inc "#include local header (inc)"
+#include "${1:`!p snip.rv = snip.basename + '.h'`}"
+endsnippet
+
+snippet Inc "#include <> (Inc)"
+#include <${1:.h}>
+endsnippet
+
+snippet mark "#pragma mark (mark)"
+#if 0
+${1:#pragma mark -
+}#pragma mark $2
+#endif
+
+$0
+endsnippet
+
+snippet main "main() (main)"
+int main(int argc, char *argv[])
+{
+       ${VISUAL}${0}
+       return 0;
+}
+endsnippet
+
+snippet for "for loop (for)"
+for (${2:i} = 0; $2 < ${1:count}; ${3:++$2})
+{
+       ${VISUAL}${0}
+}
+endsnippet
+
+snippet fori "for int loop (fori)"
+for (${4:int} ${2:i} = 0; $2 < ${1:count}; ${3:++$2})
+{
+       ${VISUAL}${0}
+}
+endsnippet
+
+snippet enum "Enumeration"
+enum ${1:name} { $0 };
+endsnippet
+
+snippet once "Include header once only guard"
+#ifndef ${1:`!p
+if not snip.c:
+       import random, string
+       name = re.sub(r'[^A-Za-z0-9]+','_', snip.fn).upper()
+       rand = ''.join(random.sample(string.ascii_letters+string.digits, 8))
+       snip.rv = ('%s_%s' % (name,rand)).upper()
+else:
+       snip.rv = snip.c`}
+#define $1
+
+${VISUAL}${0}
+
+#endif /* end of include guard: $1 */
+endsnippet
+
+snippet td "Typedef"
+typedef ${1:int} ${2:MyCustomType};
+endsnippet
+
+snippet wh "while loop"
+while(${1:/* condition */}) {
+       ${VISUAL}${0}
+}
+endsnippet
+
+snippet do "do...while loop (do)"
+do {
+       ${VISUAL}${0}
+} while(${1:/* condition */});
+endsnippet
+
+snippet fprintf "fprintf ..."
+fprintf(${1:stderr}, "${2:%s}\n"${2/([^%]|%%)*(%.)?.*/(?2:, :\);)/}$3${2/([^%]|%%)*(%.)?.*/(?2:\);)/}
+endsnippet
+
+snippet if "if .. (if)"
+if (${1:/* condition */})
+{
+       ${VISUAL}${0}
+}
+endsnippet
+
+snippet el "else .. (else)"
+else {
+       ${VISUAL}${0}
+}
+endsnippet
+
+snippet eli "else if .. (eli)"
+else if (${1:/* condition */}) {
+       ${VISUAL}${0}
+}
+endsnippet
+
+snippet ife "if .. else (ife)"
+if (${1:/* condition */})
+{
+       ${2}
+}
+else
+{
+       ${3:/* else */}
+}
+endsnippet
+
+snippet printf "printf .. (printf)"
+printf("${1:%s}\n"${1/([^%]|%%)*(%.)?.*/(?2:, :\);)/}$2${1/([^%]|%%)*(%.)?.*/(?2:\);)/}
+endsnippet
+
+snippet st "struct"
+struct ${1:`!p snip.rv = (snip.basename or "name") + "_t"`}
+{
+       ${0:/* data */}
+};
+endsnippet
+
+snippet fun "function" b
+${1:void} ${2:function_name}(${3})
+{
+       ${VISUAL}${0}
+}
+endsnippet
+
+snippet fund "function declaration" b
+${1:void} ${2:function_name}(${3});
+endsnippet
+
+# vim:ft=snippets:
diff --git a/vim/ultisnips/cpp.snippets b/vim/ultisnips/cpp.snippets
new file mode 100644 (file)
index 0000000..769f986
--- /dev/null
@@ -0,0 +1,57 @@
+priority -50
+
+extends c
+
+# We want to overwrite everything in parent ft.
+priority -49
+
+###########################################################################
+#                            TextMate Snippets                            #
+###########################################################################
+snippet beginend "$1.begin(), $1.end() (beginend)"
+${1:v}${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}begin(), $1${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}end()
+endsnippet
+
+snippet cl "class .. (class)"
+class ${1:`!p snip.rv = snip.basename or "name"`}
+{
+public:
+       ${1/(\w+).*/$1/}(${2:arguments});
+       virtual ~${1/(\w+).*/$1/}();
+
+private:
+       ${0:/* data */}
+}; // class${1/.+/ $0/m}
+endsnippet
+
+snippet ns "namespace .. (namespace)"
+namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`}
+{
+${VISUAL}${0}
+} // namespace${1/.+/ $0/m}
+endsnippet
+
+snippet readfile "read file (readF)"
+std::vector<char> v;
+if (FILE *fp = fopen(${1:"filename"}, "r"))
+{
+       char buf[1024];
+       while(size_t len = fread(buf, 1, sizeof(buf), fp))
+               v.insert(v.end(), buf, buf + len);
+       fclose(fp);
+}
+endsnippet
+
+snippet map "std::map (map)"
+std::map<${1:key}, ${2:value}> map$0;
+endsnippet
+
+snippet vector "std::vector (v)"
+std::vector<${1:char}> v$0;
+endsnippet
+
+snippet tp "template <typename ..> (template)"
+template <typename ${1:_InputIter}>
+endsnippet
+
+# vim:ft=snippets:
diff --git a/vim/ultisnips/snippets.snippets b/vim/ultisnips/snippets.snippets
new file mode 100644 (file)
index 0000000..ee0c8c7
--- /dev/null
@@ -0,0 +1,21 @@
+priority -50
+
+# We use a little hack so that the snippet is expanded
+# and parsed correctly
+snippet snip "Snippet definition" b
+`!p snip.rv = "snippet"` ${1:Tab_trigger} "${2:Description}" ${3:b}
+$0
+`!p snip.rv = "endsnippet"`
+endsnippet
+
+snippet global "Global snippet" b
+`!p snip.rv = "global"` !p
+$0
+`!p snip.rv = "endglobal"`
+endsnippet
+
+snippet vis "${VISUAL}" i
+\$\{VISUAL${1:${2:default}${3:/transform/}}\}
+endsnippet
+
+# vim:ft=snippets:
diff --git a/vim/ultisnips/vim.snippets b/vim/ultisnips/vim.snippets
new file mode 100644 (file)
index 0000000..a5df396
--- /dev/null
@@ -0,0 +1,30 @@
+priority -50
+
+###########################################################################
+#                            SnipMate Snippets                            #
+###########################################################################
+snippet gvar "Global / configuration variable" b
+if !exists("g:${1:MyUltraImportantVar}")
+       let g:$1 = ${2:"${3:<tab>}"}
+endif
+endsnippet
+
+snippet guard "script reload guard" b
+if exists('${1:did_`!p snip.rv = snip.fn.replace('.','_')`}') || &cp${2: || version < 700}
+       finish
+endif
+let $1 = 1${3}
+endsnippet
+
+snippet augroup "augroup" b
+augroup ${1:augroup_name}
+       $0
+augroup END
+endsnippet
+
+snippet f "function" b
+fun ${1:function_name}(${2})
+       ${3:" code}
+endf
+endsnippet
+# vim:ft=snippets:
index b3947e64dfbaa0477d2c49d72ca9085fa07bd143..40e3190e4c0d048818771933310e5db075a7ed01 100644 (file)
--- a/vim/vimrc
+++ b/vim/vimrc
@@ -438,7 +438,11 @@ let g:tagbar_iconchars = ['+', '-']
 
 " UltiSnips {{{2
 let g:UltiSnipsEditSplit = 'vertical'
-let g:UltiSnipsSnippetsDir = "$XDG_CONFIG_HOME/vim/ultisnips"
+let g:UltiSnipsSnippetsDir = expand("$XDG_CONFIG_HOME/vim/ultisnips")
+let g:UltiSnipsSnippetDirectories = ["UltiSnips", "ultisnips"]
+let g:UltiSnipsExpandTrigger = "<C-L>"
+let g:UltiSnipsJumpForwardTrigger = "<C-L>"
+let g:UltiSnipsJumpBackwardTrigger = "<C-H>"
 
 " youcompleteme {{{2
 let g:ycm_extra_conf_globlist = ['~/src/*','/mnt/data/src/*']