добавление нового типа файла в ultisnips

Я пытаюсь добавить файлы cuda (.cu). Основная цель состоит в том, чтобы сначала сделать все фрагменты c,cpp доступными для файлов cu, а затем добавить дополнительную поддержку. Первое, что я сделал для проверки, это установил тип файла внутри vim.

set ft:cpp.c

и это работает. Затем я попытался перейти к vim-snippets/snippets и vim-snippets/UltiSnips и попытался скопировать файл cpp.snippets в cu.snippets. Но это не работает (не работает, как в --фрагменты не обнаружены--). я также добавил

au BufNewFile,BufRead *.cu set ft=cuda
au BufNewFile,BufRead *.cuh set ft=cuda

в моем .vimrc. Даже после этого не работает.

Я также проверил UltiSnipsSnippetDirectories. Он указывает на Ultisnips.

Я также попытался создать cu.snippets, который просто пытается расширить cpp (ничего другого). Это тоже не работает.

В качестве дополнительного вопроса: насколько я понимаю https://github.com/honza/vim-snippets имеет две папки с фрагментами. snippets/* для основанных на snipmate и UltiSnips/* для основанных на ultisnips. Однако фрагмент inc предоставляется только в c.snippets в каталоге snippets (но не в ultisnips). Но странно, что inc у меня работает с c файлами. Я уверен, что не использую snipmate. Как такое могло произойти? Я что-то упускаю. или дело в том, что ультиснипсы оба формата понимают?


person knightrider    schedule 02.03.2016    source источник


Ответы (1)


Ultisnips использует систему обнаружения типов файлов Vim. Итак, чтобы увидеть, какой тип файла, по мнению Vim, у вас есть, используйте команду :set filetype?.

Если это неверно, вы можете попробовать

autocmd BufRead,BufNewFile *.cu setfiletype cuda

Кроме того, я использовал Vundle и использовал call vundle#rc(), но мне нужно было изменить это на call vundle#begin() и call vundle#end().

person thedanotto    schedule 09.10.2016