Разрешить фрагменты vim snipMate для работы с различными типами файлов
Я довольно новичок в vim и играю с конфигурацией spf13, и это здорово. Одна вещь, которую я не смог понять, это как разрешить использование фрагментов для одного типа файла для другого. В моей личной ситуации я хотел, чтобы фрагменты javascript и javascript-jquery использовались в html-файлах. Вот что я попробовал:
au BufRead,BufNewFile *.html set ft=html.js
call ExtractSnipsFile(g:neosnippet#snippets_directory.'javacript-jquery.snippets','html')
let g:snipMate = {}
let g:snipMate.scope_alias = {}
let g:snipMate.scope_alias['html'] = 'html,javascript,javascript-jquery'
let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases['html'] = 'html,javascript,javascript-jquery'
Я попытался поместить эти строки в файлы.vimrc.before.local и.vimrc.local.
Кажется, что ни один из них не позволяет фрагментам JavaScript работать в html-файлах. Я наконец сдался и скопировал все фрагменты javascript и javascript-jquery в html-файл фрагмента. Это добилось цели, но я хотел бы знать, есть ли другой способ.
2 ответа
Вы почти там. Первой строки должно быть достаточно, чтобы получить то, что вы хотите, но тип файла для файлов JavaScript не js
, его javascript
,
autocmd BufRead,BufNewFile *.html set ft=html.javascript
Это также дает вам полное понимание.
Раньше я использовал snipmate, и это была моя конфигурация для него:
let g:snipMate = {}
let g:snipMate.scope_aliases = {}
let g:snipMate.scope_aliases.haml = 'javascript'
let g:snipMate.scope_aliases.jade = 'javascript'
let g:snipMate.scope_aliases.markdown = 'html'
let g:snipMate.scope_aliases.javascript = 'javascript.d3,javascript-jquery'
Вам не нужно беспокоиться о настройке составных типов файлов, и вам не нужно самим указывать типы файлов, для которых вы определяете псевдонимы области. Это работает отлично и рекурсивно. Так как мы определили типы файлов javascript для scope_alias также для javascript.dr & javascript-jquery, приведенный выше тип файла haml, определив scope_alias для javascript, получает также все scope_aliases javascript, определенные для него. Вам не нужно повторяться.
Я не уверен в.vimrc.local или других файлах, я просто поместил это в мой.vimrc