vim snipMate: развернуть фрагмент внутри фрагмента

При использовании vim-snipmate у меня возникает следующая проблема: если я пытаюсь развернуть фрагмент внутри фрагмента, snipmate переводит меня к следующему заполнителю текущего фрагмента вместо расширения нового фрагмента.

Например: если вы нажмете tab в следующей ситуации:

for (i = 0; i < 10; i++) {
    ifi<press tab here>
}

Я бы ожидал:

for (i = 0; i < 10; i++) {
    if (<cursor position>) ;
}

но я получаю следующее:

for (i = 0; i < 10; i++) {
    ifi
}<cursor position>

Есть ли способ расширить фрагменты внутри фрагментов или хотя бы способ запретить переход к следующему заполнителю?

с уважением

2 ответа

Оригинальный snipMate не поддерживал рекурсивное расширение фрагмента. По-видимому, вилка не, ни. Это не мешало бы спросить у трекера проекта о такой поддержке.

Современная альтернатива (для которой требуется Python) - это UltiSnips. Насколько я знаю, этот поддерживает фрагменты внутри фрагментов.

lh-cpp и mu-template поддерживают фрагменты внутри фрагментов и даже фрагменты, которые расширяют фрагменты (например, switch фрагмент опирается на case сниппет).

Однако синтаксис фрагментов не имеет ничего общего с синтаксисом snipMate и консортов. И используемая система заполнителей является старой школой.

Другие вопросы по тегам