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 и консортов. И используемая система заполнителей является старой школой.