意外的惊喜: vim 有 lsp 加持
昨天朋友邮件分享给十里一个链接,不要太优秀,那就是 LSP ,什么是 LSP?
The Language Server protocol is used between a tool (the client) and a language smartness provider (the server) to integrate features like auto complete, go to definition, find all references and alike into the tool.
为什么会存在这个东西,算了,我也不搬运别人的话了,这里是传送门。简单来说,有了它,能实现语言服务和编辑器之间协作的大一统,LSP 打通了 LS 与编辑器,那么像上古神器 vim 以及神的编辑器 emacs…..只要是编辑器有 LSP 的加持都能轻松实现代码补全、定义和声明跳转、语法检查、代码格式化、重命名(用于重构)以及查看引用等,简直不要太 high!因为朋友和我都是使用 vim,所以花了一早上便研究了一下 python 和 swift 的 LSP 配置和使用。
vim 的 LSP 配置看上面这个 vim-lsp 就够了, README 和 wiki 中一定可以找到常用编程语言的支持。
不过,还是存在一些问题的,我配置了 python 和 swift 两种语言的 LSP,各种跳转很优秀,语法检查也不错,就是代码补全和代码格式化有些问题!不知道是不是我的 vim 的问题还是什么,补全弹窗出现的慢,尤其是 swift 的补全,竟然会卡代码,我晕~ python 的代码格式化简直不要太迷幻,总之套路不详!python 的代码补全、语法检查和代码格式化又退回到了原来的插件组合和配置,有时间再研究一下 vim-lsp …
- python 补全: completor + jedi
- python 语法检查和代码格式化: ale + pylint 和 autopep8
- python 代码跳转、查看引用和重构: vim-lsp 和 async.vim + python language server
感觉也有可能是 python 的 LS 工具的原因,后面尝试一下微软的 python language server!