Это тоже не работает для меня!
Но, копаясь в документе для Ultisnips
, я нашел альтернативу: h UltiSnips#SnippetsInCurrentScope
.В этом разделе справки приведен пример функции GetAllSnippets()
, которая возвращает list
фрагментов, доступных для текущего буфера, и выглядит так:
function! GetAllSnippets()
call UltiSnips#SnippetsInCurrentScope(1)
let list = []
for [key, info] in items(g:current_ulti_dict_info)
let parts = split(info.location, ':')
call add(list, {
\"key": key,
\"path": parts[0],
\"linenr": parts[1],
\"description": info.description,
\})
endfor
return list
endfunction
Я не уверен, что вам нужнопосле списка фрагментов доступны.Если вы хотите перейти к определению фрагмента, вы можете сделать это с помощью модифицированной версии функции в документе ниже.Это заполняет и открывает список быстрых исправлений:
function! GetAllSnippets()
call UltiSnips#SnippetsInCurrentScope(1)
let list = []
for [key, info] in items(g:current_ulti_dict_info)
let parts = split(info.location, ':')
call add(list, {
\"text": key,
\"filename": parts[0],
\"lnum": parts[1],
\"context": info.description,
\})
endfor
call setqflist([], ' ', { 'title': 'Snippets', 'items' : list})
" Open Quickfix list as soon as it is populated
copen
endfunction
В качестве альтернативы, если вы используете fzf-vim , вы можете использовать команду :Snippets
для вывода списка, нечеткого поиска и вызовафрагмент.
РЕДАКТИРОВАТЬ:
Я сейчас выгляжу глупо!: D Решение было прямо здесь в h g:UltiSnipsListSnippets
:
Имейте в виду, что некоторые эмуляторы терминала не отправляют <c-tab>
(и другие, например <c-h>
) в работающую программу.
Похоже, мой терминал тоже блокировал <C-tab>
и <C-;>
.Переназначен на использование <C-m>
, и он все еще не работает.Это потому, что это отображение режима вставки , и я пытался в обычном режиме все это время!