yasnippet的printf应该怎么写?

在别处抄的:

printf("${1:%s}\\n"${1:$(if (string-match "%" yas-text) ", " "\);")}$2${1:$(if (string-match "%" yas-text) "\);" "")}

不太好用, 没有占位符的时候, 总是需要多按一次tab, 感觉很不方便, 有没有改进版本?