代码之家  ›  专栏  ›  技术社区  ›  user7988893

如何在html文件而不是js文件中调用js完成?

  •  10
  • user7988893  · 技术社区  · 6 年前

    我已经用这种方式安装了tern\u for\u vim和YouCompleteMe for js completion。

    1安装节点

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
    source ~/.nvm/nvm.sh
    nvm install node
    

    2安装tern\u for\u vim

    $ cd ~/.vim/bundle
    git clone https://github.com/marijnh/tern_for_vim
    

    3安装YouCompleteMe

    cd ~/.vim/bundle/YouCompleteMe
    $ ./install.sh --clang-completer --tern-completer
    

    4编辑。tern项目

    vim  .tern-project  
    {
        "libs": [
            "browser",
            "underscore",
            "jquery"
        ],
        "plugins": {
            "node": {}
        }
    }
    

    现在进行vim测试。js。
    输入后弹出js完成 document. 正在测试中。js文件。
    enter image description here

    然后进行vim测试。html
    输入后没有弹出js完成 文件 正在测试中。html文件。
    如何修复它?

    2 回复  |  直到 6 年前
        1
  •  6
  •   Tarun Lalwani    6 年前

    遗憾的是,这并没有得到tern的正式支持。您可以在一个已关闭的问题中看到响应

    https://github.com/ternjs/tern_for_vim/issues/170

    因为分离HTML和脚本的解析逻辑尚未实现。如果您想尝试一下,这可以作为插件来完成,但它超出了此存储库的范围。

    但还有另一条线索可以帮助你

    Using tern_for_vim plugin in HTML files

    因此,最好是通过JS文件将代码包含在html中,然后编辑JS文件。或者看看其他插件/IDE环境。我还将探讨以下选项

    https://github.com/Shougo/deoplete.nvim#install

        2
  •  0
  •   rinceldore    6 年前

    我不熟悉tern\u for\u vim和YouCompleteMe for js completion,但是您可以始终使用vim内置的omni func completion。

    如果您添加:

    filetype on
    filetype plugin on
    set omnifunc=syntaxcomplete#Complete
    

    对于vimrc文件,您可以使用手动将html文件的文件类型设置为javascript :set filetype=javascript 在vim期间。 然后,在插入模式下,可以使用 <C-x> 之后是 <C-o> 访问特定于javascript语言的omni completion。

    然后,标准即可导航生成的完成菜单 <C-p> 对于up和 <C-n> 用于向下热键。

    这一点以及其他一些内置的完成功能将在一个漂亮的 thoughtbot talk