1

Например, для любого файла, оканчивающегося на .foo , я хотел бы иметь следующее поведение в vim:

  • если пользователь вводит i. Хочу автозаполнения vim предоставить список dogs, cats, mice
  • если пользователь вводит i.dogs. Я хочу, чтобы автозаполнение vim предоставляло список poodle,dachshund,pitbull

Кстати, мне нужно использовать эту функцию на настроенном языке для удобного набора текста / обучения.

1 ответ1

3

Вы можете написать собственное завершение в режиме вставки через 'omnifunc' или 'completefunc' . Читайте подробности по адресу :help complete-functions ; Есть и примеры.

Vim использует типы файлов (например, java , c , markdown) в качестве абстракции над расширениями файлов, которые являются лишь одним способом представления типа файла (другие, например, #!/bin/bash строки хеш-бэнга в верхней части исполняемого скрипта). Вы можете написать собственное определение типа файла, например так:

:autocmd BufNewFile,BufRead *.foo setf foo

А затем поместите свое пользовательское завершение в ~/.vim/ftplugin/foo_completion.vim с таким содержимым:

:setlocal completefunc=FooCompletion

Я надеюсь, что эти указатели помогут; пожалуйста, обратитесь к справке и существующим типам файлов для деталей.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .