Я использую плагин Utl для Vim и ищу способ создания пользовательской функции автозаполнения для генерации ссылки на тег id внутри файла. Формат, который я хочу использовать:
:CommandName <file> <id tag in file>
Я бы хотел, чтобы функция действовала как стандартное завершение каталога для первого аргумента. Для второго аргумента мне бы хотелось, чтобы он поискал в файле, указанном в первом аргументе, все строки, начинающиеся с «id =», и возвращал значения.
Я скопировал аналогичную функцию из основного пакета Utl, но мне еще предстоит приблизиться к тому, чтобы заставить ее работать, в настоящее время она выглядит так:
fu! CompleteArgs(dummy_argLead, cmdLine, dummy_cursorPos)
" Split cmdLine to figure out how many arguments have been provided by user
" so far. If Using argument keepempty=1 for split will provide empty last
" arg in case of a new arg is about to begin or an non empty last argument
" in case of an incomplete last argument. So can just remove the last arg.
exe "echo \"cmdline:\" \"".a:cmdLine."\""
let utlArgs=split(a:cmdLine, '\s\+', 1)
execute "echo" string(utlArgs)
echo "echo" "test complete"
"remove the function name
call remove(utlArgs, -1)
" 1st arg to complete
if len(utlArgs)==1
return string(glob("*"))
endi
" 2nd arg to complete
if len(utlArgs)==2
"insert code here
endif
endfun
У кого-нибудь есть идеи?