I'm trying to set up tern_for_vim plugin to have nice autocompletion in JavaScript. While editing ".js" files, "Ctrl+X Ctrl+O" gives nice semantic results, picking up the "backbone.js" and other libraries. However, when I'm editing a JS block inside an HTML file, this doesn't work, I only see the buffer-based standard completion. I can't figure out what's the problem. How to fix this?
I looked at the plugin; I hope I have the right one: https://github.com/marijnh/tern_for_vim
It seems to make a difference only for javascript files. If you want to use it for html files, you could try one of these (in order of increasing levels of indirection)
:setlocal omnifunc=tern#Complete
:call tern#Enable()
:runtime after/ftplugin/javascript_tern.vim
:set ft=html.javascript_tern
:set ft=html.javascript
If any of these have the desired effect, then you can set vim up to do the corresponding thing automatically. Probably simplest (if the middle suggestion works) is to make a copy of javascript_tern.vim in the same directory, and call it html_tern.vim.
来源:https://stackoverflow.com/questions/22792956/using-tern-for-vim-plugin-in-html-files