UltiSnips не заполняет все заполнители

#vim #ultisnips

#vim #ultisnips

Вопрос:

Как написать простой фрагмент, в котором значение заполнителя заменяется в обоих местах.

 snippet test "test struct" 
type ${1} struct {
    id string
}

func (p *${1}) Id() string {
    return p.id
}

endsnippet
 

поэтому, когда я набираю test <tab> , он должен запрашивать ввод одного значения, которое приводит к (если я ввожу xyz)

 type xyz struct {
        id string
    }

    func (p *xyz) Id() string {
        return p.id
    }
 

в моей системе может возникнуть конфликт с другими плагинами, но в настоящее время, когда я запускаю фрагмент, курсор перемещается на второй заполнитель (at func (p *${1}) Id() string { ) и никогда не завершает первый.

Комментарии:

1. Я не знаю ultisnip, но в snipMate вам нужно будет написать type ${1:} (обратите внимание : ), чтобы получить остановку, которая отражает текст.

2. спасибо .. пробовал с двоеточием.. результаты те же..

Ответ №1:

Удалите фигурные скобки вокруг второго {1} (и, возможно, добавьте текст по умолчанию к первому заполнителю, как указал Инго Каркат):

 snippet test "test struct" 
type ${1:foo} struct {
    id string
}

func (p *$1) Id() string {
    return p.id
}

endsnippet