3

我为 Vim 尝试了不同的代码分析引擎和工具(如tern_for_vim),但它们没有像 VSCode 那样提供如此出色的自动完成、转到和重命名功能。据我所知,VSCode 使用语言服务器协议技术来提供 IDE 功能。所以这是我的问题:

是否可以在 Vim 或 NeoVim 中使用 VSCode 语言服务器协议引擎?换句话说,是否可以提供与 VSCode 一样优质的类似 IDE 的功能?

我已经尝试过使用deoplete.vim的 javascript-typescript- langserver,但是自动完成和 goto-declaration 的质量很差。

4

2 回答 2

1

理论上,是的。http://langserver.org/提供了编辑器插件和语言服务器实现的列表。

使用https://github.com/autozimu/LanguageClient-neovim之类的包(用于 neovim,还有其他用于 vim 和 neovim),您可以在 neovim 中使用语言服务器。

但是,某些实现与它在 vscode 中的工作方式相关(如 haxe lsp),因此使其工作可能有点困难。Javascript应该更好集成,但我自己没有尝试。

于 2018-01-07T21:36:13.887 回答
1

是的,您可以通过 coc.nvim 安装来使用它,它是 VSCode 的一个分支。然后,您将其中一个包应用于特定语言,例如 coc-python。

这是 coc.nvim 的安装指南。然后,您需要在 (Neo)Vim 中使用以下命令安装语言包:

:CocInstall coc-python

然后,您可以立即使用默认的 VS Code 完成引擎(绝地)或升级到将成为其继任者的 MSPLS:

对于 MSPLS,运行命令:CocConfig并将其输入到打开的文件中:

{
    "python.jediEnabled": false
}

然后运行:CocRestart

还有其他引擎,例如 coc.nvim,例如 YouCompleteMe。它们都有针对特定语言的细微变化/定制。

于 2020-05-31T20:34:07.837 回答