Разрешить фрагменты 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

Другие вопросы по тегам