1

这是我的片段:

# Get repository of a table:
snippet repo
    $$2 = $this->getRepository('${1:Bundle}:${2:TableName}')
    ${3}

当我使用它时,它可能会产生以下内容:

$Person = $this->getRepository('MyBundle:Person')
$Address = $this->getRepository('MyBundle:Address')

我希望第一个是小写的,总是小写的,并给我类似的东西:

$person = $this->getRepository('MyBundle:Person')
$address = $this->getRepository('MyBundle:Address')
...

. 有没有办法用 snipmate 做到这一点?

4

2 回答 2

1

我认为 snipmate 不可能,但你可以看看 UltiSnips。UltiSnips 使用非常相似的模板语法(非常容易转换)并且用途更广泛。 http://www.vim.org/scripts/script.php?script_id=2715

于 2013-02-09T19:37:41.963 回答
1

snipMate无法做到这一点。我试图实现这一点,但是(尤其是当转换改变字符数时),当前的实现很难做到。

这可能是转向UltiSnips 插件的最佳理由,它是一种现代的、维护的替代品(但需要 Python 支持)。在那里,该功能称为转换,并使用${<tab stop no/regular expression/replacement/options}语法。您可以使用\L正则表达式原子来小写替换。

于 2013-02-09T19:51:29.187 回答