如何让 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.之后自动弹出,而不是输入&lt;C-X&gt;&lt;C-O&gt;

方法二:

sudo cp .vim/bundle/tern_for_vim/after/ftplugin/javascript_tern.vim   .vim/bundle/tern_for_vim/after/ftplugin/html_tern.vim

您应该在document. 之后输入&lt;C-X&gt;&lt;C-O&gt;,以便为您编辑的html 文件调用js 补全菜单。

编辑的js文件的js补全菜单在document.之后无法自动弹出。

1.如何让js补全菜单在document.之后自动弹出,而不是输入&lt;C-X&gt;&lt;C-O&gt;? (同方法一第二项。)

【问题讨论】:

从我的角度来看,您的问题完全不清楚 重复***.com/q/5169638/4989460 【参考方案1】:

Here 是同一问题的答案。

您可以使用AutoComplPop 之类的插件在您键入时自动完成代码。

2015 年编辑:我个人现在使用YouCompleteMe。

【讨论】:

【参考方案2】:

我猜你正在使用 Method 2,它正在使用 &lt;C-X&gt;&lt;C-O&gt;

您需要inoremap 来执行此操作,请参阅:What's the meaning of 'inoremap' in vimrc

并且由于 Tern for Vimomni 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>"

这基本上将. 变成触发&lt;CTRL-X&gt; &lt;CTRL-O&gt; 的触发器

但最好将 :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 文件中自动弹出?的主要内容,如果未能解决你的问题,请参考以下文章

vscode自动补全c++

Mac上git自动补全功能

Mac上git自动补全功能

Redis 自动补全

Vim自动补全配置小记-无论如何弹不出代码补全框

如何设置notepad++的代码自动补全功能