Как с помощью snipMate добавить определенные фрагменты только для файла mySpecial.html?

В моей среде vim я хочу добавить несколько определенных фрагментов, которые должны быть активны только при редактировании файла mySpecial.html.

Поскольку этот файл является файлом html, я хочу, чтобы он имел тип файла html. Но, с другой стороны, если я редактирую любой другой html-файл, я не хочу, чтобы конкретные фрагменты были активны. Итак, похоже, я не могу использовать для этого стандартный механизм типов файлов.

Есть ли решение моей проблемы?


person René Nyffenegger    schedule 15.03.2014    source источник


Ответы (3)


Для оригинального (Майкла Сандерса) snipMate я определил следующую команду:

:command! -bar -nargs=1 -complete=filetype AddSnippets silent call ExtractSnipsFile(g:snippets_dir . <q-args> . '.snippets', &l:filetype)

При этом вы можете в интерактивном режиме или через autocmd добавить фрагменты:

:autocmd BufRead,BufNewFile mySpecial.html AddSnippets mySpecial
person Ingo Karkat    schedule 15.03.2014

Это звучит как интересный запрос функции.

А пока вы можете попробовать этот более простой вариант решения Карло:

  1. Поместите свои пользовательские фрагменты в ~/.vim/snippets/foo.snippets.
  2. Добавьте следующую строку в свой ~/.vimrc:

    augroup mySpecialHTML
        autocmd!
        autocmd BufRead,BufNewFile mySpecial.html set filetype=html.foo
    augroup END
    
person romainl    schedule 15.03.2014
comment
Ах, всегда есть что-то новое, что можно узнать о vim, я не знал о функции augroup :) - person Carlo; 15.03.2014

Я думаю, вы можете определить новый тип файла только для вашего mySpecial.html.

au BufRead,BufNewFile mySpcial.html set filetype=myHtml

И в этом типе файла вы можете повторно использовать группу HTML Highlights, а также свои пользовательские фрагменты.
Звучит ли это разумно?

person Carlo    schedule 15.03.2014
comment
Это звучит разумно, если повторное использование не подразумевает копирование/вставку. - person René Nyffenegger; 15.03.2014