已经配置好的cpp.snippets,可直接使用或根据自己的需求修改

priority -50

extends c

# We want to overwrite everything in parent ft.
priority -49
###########################################################################
#			    Global functions 						  #
###########################################################################

global !p

def write_docstring_args(arglist, snip):
	args = str(arglist).split(',')

	if len(args) > 1:
		c = 0
		for arg in args:
			if c == 0:
				snip.rv += arg
				c = 1
			else:
				snip += '*       : %s' % arg.strip()
	else:
		snip.rv = args[0]


endglobal

###########################################################################
#                            TextMate Snippets                            #
###########################################################################
snippet beginend "$1.begin(), $1.end() (beginend)"
${1:v}${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}begin(), $1${1/^.*?(-)?(>)?$/(?2::(?1:>:.))/}end()
endsnippet

snippet ns "namespace .. (namespace)"
namespace${1/.+/ /m}${1:`!p snip.rv = snip.basename or "name"`}
{
	${VISUAL}$0
}${1/.+/ \/* /m}$1${1/.+/ *\/ /m}
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

#snippet cla "An entire .h generator" b
##ifndef ${2:`!v substitute(vim_snippets#Filename('$1_H','ClassName'),'.*','\U&\E','')`}
##define $2
#
#class ${1:`!v substitute(substitute(vim_snippets#Filename('$1','ClassName'),'^.','\u&',''), '_\(\w\)', '\u\1', 'g')`}
#{
#private:
#	$3
#
#public:
#	$1();
#	virtual ~$1();
#};
#
##endif /* $2 */
#endsnippet

########################################################self-defined##################################
snippet class "class .. (class)"
/**
 * @brief ${1:`!p snip.rv = snip.basename or "name"`}
 */
class ${1:`!p snip.rv = snip.basename or "name"`} final
{
public:
	${1/(\w+).*/$1/}();
	~${1/(\w+).*/$1/}()=default;

	${1/(\w+).*/$1/}(const ${1:`!p snip.rv = snip.basename or "name"`} &)=delete;
	${1/(\w+).*/$1/}& operator=(const ${1:`!p snip.rv = snip.basename or "name"`} &)=delete;

	${1/(\w+).*/$1/}(${1:`!p snip.rv = snip.basename or "name"`} &&)=default;
	${1/(\w+).*/$1/}& operator=(${1:`!p snip.rv = snip.basename or "name"`} &&)=default;

private:
};
endsnippet

snippet bclass " base class .. (class)"
/**
 * @brief ${1:`!p snip.rv = snip.basename or "name"`}
 */
class ${1:`!p snip.rv = snip.basename or "name"`} :public std::enable_shared_from_this<${1:`!p snip.rv = snip.basename or "name"`}>
{
public:
	${1/(\w+).*/$1/}();
	virtual ~${1/(\w+).*/$1/}()=default;

	${1/(\w+).*/$1/}(const ${1:`!p snip.rv = snip.basename or "name"`} &)=delete;
	${1/(\w+).*/$1/}& operator=(const ${1:`!p snip.rv = snip.basename or "name"`} &)=delete;

	${1/(\w+).*/$1/}(${1:`!p snip.rv = snip.basename or "name"`} &&)=default;
	${1/(\w+).*/$1/}& operator=(${1:`!p snip.rv = snip.basename or "name"`} &&)=default;

protected:

private:
};
endsnippet


snippet #inc "#include <>"
#include <$1>
endsnippet

snippet #inc2 "#include "
#include "$1"
endsnippet

snippet #incb "#include <boost>"
#include <boost/$1>
endsnippet

snippet uns "using namespace "
using namespace $1
endsnippet


snippet sp "shared_ptr"
std::shared_ptr<$1> $1Ptr;
endsnippet

snippet usp "using std::shared_ptr"
using $1Ptr=std::shared_ptr<$1>;
endsnippet

snippet wp "weak_ptr"
std::weak_ptr<$1> $1Wptr;
endsnippet

snippet uwp "using std::weak_ptr"
using $1Wptr=std::weak_ptr<$1>;
endsnippet

snippet up "unique_ptr"
std::unique_ptr<$1> $1Uptr;
endsnippet

snippet uup "using unique_ptr"
using $1Uptr=std::unique_ptr<$1>;
endsnippet

snippet um "std::unordered_map"
std::unordered_map<${1:key},${2:value}> umap;
endsnippet

snippet cout "cout..."
std::cout<<$1<<std::endl;
endsnippet

snippet sfs "sleep_for(s)"
std::this_thread::sleep_for(std::chrono::seconds($1));
endsnippet
snippet sfms "sleep_for(ms)"
std::this_thread::sleep_for(std::chrono::milliseconds($1));
endsnippet
snippet sfus "slee_for(us)"
std::this_thread::sleep_for(std::chrono::microseconds($1));
endsnippet
snippet sfns "slee_for(ns)"
std::this_thread::sleep_for(std::chrono::nanoseconds($1));
endsnippet

snippet for "for i"
for(int i=0;i<$1;++i)
{
}
endsnippet

snippet forr "for range"
for(auto &${1:element}:${2:container})
{
}
endsnippet

snippet foreach "std::for_each()"
std::for_each($1begin(),$1end(),[](auto & item)->void{
});
endsnippet

snippet lam "lambda"
[$1]($2)->$3{
	$4
}
endsnippet

snippet try "try...catch"
try{
}catch(std::exception &ex)
{
}
endsnippet
########################################################end self-defined##################################

#snippet fnc "Basic c++ doxygen function template" b
#/**
#* @brief: ${4:brief}
#*
#* @param: `!p write_docstring_args(t[3],snip)`
#*
#* @return: `!p snip.rv = t[1]`
#*/
#${1:ReturnType} ${2:FunctionName}(${3:param})
#{
#	${0:FunctionBody}
#}
#endsnippet
# vim:ft=snippets:

猜你喜欢

转载自blog.csdn.net/lianshaohua/article/details/108469300