Vim UltiSnips-使用占位符创建参数列表

Vim UltiSnips-使用占位符创建参数列表,vim,code-snippets,ultisnips,Vim,Code Snippets,Ultisnips,我试图在UltiSnip中创建一种方法,以获取变量名列表并将其转换为以行分隔的字符串列表(如 你会在AngularJS中看到)。因此,键入每个参数,跳转到下一个占位符,然后在函数上方填充所需内容 从这个开始: function(FirstArg, SecondArg, ThirdArg) 点击CTRL-J(下一个占位符) 最后的结果是: [ 'FirstArg', 'SecondArg', 'ThridArg', function(FirstArg, SecondArg, Th

我试图在UltiSnip中创建一种方法,以获取变量名列表并将其转换为以行分隔的字符串列表(如 你会在AngularJS中看到)。因此,键入每个参数,跳转到下一个占位符,然后在函数上方填充所需内容

从这个开始:

function(FirstArg, SecondArg, ThirdArg)
点击CTRL-J(下一个占位符)

最后的结果是:

[
  'FirstArg',
  'SecondArg',
  'ThridArg',
  function(FirstArg, SecondArg, ThirdArg) {
    // ... cursor here after hitting CTRL-J
    // this would be $0
  }
]

任何提示都很好

比我想的简单。这就是函数

global !p
def varDeps(args):
    result = ""
    argList = args.split(",")

    for arg in argList:
        dep = "    " + "'" + arg.strip() + "',\n"
        result = result + dep

    return result.rstrip()
 endglobal
然后使用类似的内容(这里是第三个占位符)


只是一个想法:将()之间的整个字符串作为$1,然后使用python插值在逗号处拆分它并生成上面的行。原则上应该行得通,但如果你深入细节,我不知道会有多混乱。
    `!p snip.rv = varDeps(t[3])`
        function($scope, ${3:deps}) {
            //....
        }