завершение ультиснипа в активном фрагменте - PullRequest
0 голосов
/ 01 мая 2020

У меня есть следующий фрагмент:

snippet ta "table" b
.${1:Title}
[${2:width="${3:80%}",cols="${4:}",frame="topbot",options="header",stripe="even"}]                                            
|====                                   
|$0                                                         
|====      

Но как только я вкладываю до $ 0, я хочу вставить 'a | sometext' в каждую новую строку. Я бы предпочел использовать вкладку или войти. Как мне этого добиться? Спасибо за любые предложения.

1 Ответ

0 голосов
/ 02 мая 2020

Я не верю, что это возможно с Ultisnips, к сожалению.

Вы можете изменять зеркала входа, но не сам вход. Вы можете использовать функцию пост-расширения python, но это кажется слишком сложным для вашей проблемы.

С моей точки зрения, самое простое решение - заключить ваш ключ <CR> (= enter) в vim, и, если необходимо, добавить символ |:

function HandleCR()
    if getline(line('.')) =~ '^|'
        return "\<CR>|"
    endif
    return "\<CR>"
endfunction
inoremap <buffer><silent> <CR> <C-r>=HandleCR()<CR>

(вставить в .vimrc, а не в файл сниппета)

Обратите внимание, что это всегда будет работать, даже когда из фрагмента

...