2014-04-04 11 views
2

나는 vim을 처음 접했고 spf13 구성으로 놀아 보았습니다. 내가 알아낼 수 없었던 한 가지 방법은 한 유형의 파일에 대한 스 니펫을 다른 파일에 사용하는 것입니다. 내 개인적인 상황에서 나는 javascript 및 javascript-jquery 스 니펫을 html 파일에서 사용하기를 원했습니다. 여기에 내가 뭘하려 : 나는 모두 .vimrc.before.local 및 .vimrc.local 파일에 다음 줄을 넣어 시도vim snipMate 스 니펫이 다른 파일 형식에서 작동하도록 허용

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' 

.

아무 것도 자바 스크립트 스 니펫이 HTML 파일에서 작동하는 것을 허용하지 않는 것 같습니다. 드디어 포기하고 모든 javascript 및 javascript-jquery 스 니펫을 html 스 니펫 파일에 복사했습니다. 그건 속임수 였지만 다른 방법이 있는지 알고 싶습니다.

답변

2

거의 다 왔어. 첫 번째 줄은 원하는 것을 얻을 수있을만큼 충분하지만 JavaScript 파일의 파일 형식은 js이 아니며 javascript입니다.

autocmd BufRead,BufNewFile *.html set ft=html.javascript 

이렇게하면 js omnicompletion도 제공됩니다.

+1

아, 나는 거의 잊었다 넣어! SPF13은 거대하고 불필요한 쓰레기입니다 : 빨리 내리십시오. – romainl

0

내가 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.dr & 위의 javascript-jquery, haml 파일 유형에 대해 scope_alias에 javascript 파일 유형을 정의 했으므로 javascript에 대해 scope_alias를 정의하면 정의 된 javascript의 scope_aliases도 모두 가져옵니다. 당신은 자신을 반복 할 필요가 없습니다.

내가 .vimrc.local 또는 다른 파일에 대한 확실하지 않다, 난 그냥 내의 .vimrc