如何让 js 补全在 HTML 文件中自动弹出?
Posted
技术标签:
【中文标题】如何让 js 补全在 HTML 文件中自动弹出?【英文标题】:How to make js completion pop up automatically in HTML files? 【发布时间】:2018-08-23 22:58:39 【问题描述】:正如网页所说,在 html 文件中使用 tern_for_vim 插件有两种方法。
use tern_for_vim plugin in HTML files
两种方法都可以,都不能自动弹出js补全菜单。
方法一:
1.vim test.html
2.:setlocal omnifunc=tern#Complete
3.To input `<C-X><C-O>` after `document.`
现在会弹出 js 补全。
这种方法还有两个问题。
1.在.vimrc中写setlocal omnifunc=tern#Complete
是不行的。
为什么?
2.如何让js完成菜单在document.
之后自动弹出,而不是输入<C-X><C-O>
?
方法二:
sudo cp .vim/bundle/tern_for_vim/after/ftplugin/javascript_tern.vim .vim/bundle/tern_for_vim/after/ftplugin/html_tern.vim
您应该在document.
之后输入<C-X><C-O>
,以便为您编辑的html 文件调用js 补全菜单。
编辑的js文件的js补全菜单在document.
之后无法自动弹出。
1.如何让js补全菜单在document.
之后自动弹出,而不是输入<C-X><C-O>
? (同方法一第二项。)
【问题讨论】:
从我的角度来看,您的问题完全不清楚 重复***.com/q/5169638/4989460 【参考方案1】:Here 是同一问题的答案。
您可以使用AutoComplPop 之类的插件在您键入时自动完成代码。
2015 年编辑:我个人现在使用YouCompleteMe。
【讨论】:
【参考方案2】:我猜你正在使用 Method 2
,它正在使用 <C-X><C-O>
您需要inoremap
来执行此操作,请参阅:What's the meaning of 'inoremap' in vimrc
并且由于 Tern for Vim
与 omni completion
挂钩(如 https://github.com/ternjs/tern_for_vim ),您可以修改它的键映射以使其表现得如您所愿。
来自文档:http://vimdoc.sourceforge.net/htmldoc/insert.html#ft-javascript-omni
您可以在映射中使用 键入一个字符并满足某些条件。例如,对于键入 一个点:
inoremap <expr> . MayComplete()
func MayComplete()
if (can complete)
return ".\<C-X>\<C-O>"
endif
return '.'
endfunc
打开vim
并在命令模式下输入就可以了:
:inoremap <expr> . ".\<C-X>\<C-O>"
这基本上将.
变成触发<CTRL-X> <CTRL-O>
的触发器
但最好将 :map
命令放入 ~/.vim/ftplugin/filetype_mappings.vim
。 (这要求您拥有:filetype plugin on
。)
这是通用的vim
键映射:http://vim.wikia.com/wiki/Mapping_keys_in_Vim_-Tutorial(Part_1)
检查它以查看它是否正常工作:https://imgur.com/gpvzaUt
PS:我用Pathogen
安装Tern for Vim
(https://github.com/tpope/vim-pathogen)
我希望这能回答你的问题,或者至少给你一个想法。
【讨论】:
以上是关于如何让 js 补全在 HTML 文件中自动弹出?的主要内容,如果未能解决你的问题,请参考以下文章