我已经为 Vim 尝试了不同的代码分析引擎和工具(如 tern_for_vim(,但它们没有像 VSCode 那样提供如此出色的自动完成、转到和重命名功能。据我所知,VSCode使用语言-服务器-协议技术来提供IDE功能。所以这是我的问题:
是否可以在 Vim 或 NeoVim 中使用 VSCode 语言-服务器-协议引擎?换句话说,是否有可能提供与VSCode相同的高质量类似IDE的功能?
我尝试过使用deoplete.vim的javascript-typescript-langserver,但是自动完成和goto-declaration的质量很差。
是的,您可以通过coc.nvim安装使用它,这是VSCode的一个分支。然后,您将它的一个包应用于特定语言,例如coc-python。
这是coc.nvim的安装指南。然后,您需要在 (Neo(Vim 中使用以下命令安装语言包:
:CocInstall coc-python
然后,您可以立即使用默认的 VS Code 完成引擎(绝地(或升级到将成为其后继引擎 MSPLS 的内容:
对于 MSPLS,运行命令:CocConfig
并将其输入到打开的文件中:
{
"python.jediEnabled": false
}
然后运行:CocRestart
还有其他引擎,如coc.nvim,如YouCompleteMe。它们都有针对特定语言的小变化/定制。
理论上是的。 http://langserver.org/提供了编辑器插件和语言服务器实现的列表。
使用像 https://github.com/autozimu/LanguageClient-neovim 这样的软件包(用于 neovim,还有其他用于 vim 和 neovim(你可以在 neovim 中使用语言服务器。
但是,一些实现与它在 vscode 中的工作方式(如 haxe lsp(相关联,因此可能很难让它工作。Javascript应该更好地集成,但我自己没有尝试过。