到上一篇文章为止,我们配置了neovim的很多内容。 具备一些编辑器的常规功能,可以胜任日常的文档编辑工作。 但是,作为信任的代码编辑器,缺少对代码语法部分的支持这一重要环节。 过去的vim配置基于名为you-complete-me的插件配置。 但是,对既不懂c语言也不懂vim的白来说是一场灾难。 各种兼容问题、错误频繁发生,效果不如visual studio code等编辑器好。 可能是我的时候比较过菜,当初针对python配置的补充效果一般只能补充内置函数,自己定义的类和方法不能补充,在跳的时候有好有坏。 在那之后,我放弃了vim很久。 好在微软提供了lsp这个大杀器,大大提高了vim、emacs这样的编辑器的代码编辑体验。 而且配置比较简单。
lsp配置文件传统编辑器包括代码高亮、语法分析和跳转等功能,因此所有编辑器都有自己的查看、跳转等计划。 第三方编辑器几乎不可能达到完全相同的效果。 但微软提出的语言服务协议( LSP )确实改变了这一格局。 lsp最重要的是将语言的核心功能(如语法分析、跳转和自动完成)与最终的呈现效果分开。 这意味着服务器端主要提供语法分析、补充和跳转的核心功能,而客户端则调用并展示服务器端提供的这些功能,或者通过快捷键或其他用户界面供用户使用此外,语言服务作为进程单独运行,不影响客户端执行。 它们之间以本地网络的形式进行信息交换
用户用工具打开的文件。 此工具通知语言服务器文档已打开。 “‘文本文档/文档打开’”。 从现在起,文档内容不再位于文件系统上,而是保存在编辑器打开的内容中,供用户进行编辑。 此工具会通知服务器文档更改(“文本文档/did change”),并使用语言服务器更新程序语义信息。 如果出现这种情况,语言服务器将分析此信息并向工具( text document/publish diagnostics ) )通知检测到的错误和警告。 此外,一些可用于补充的内容用户可能会对编辑器中的元件执行“转至定义”。 这个工具有两个参数)发送文本文档的服务器用文档的URI和符号定义文档中的位置来进行响应。 客户端收到回复后,根据服务器标记的位置进行跳转,用户关闭文档(文件)。 工具会发送“文本文档/did close”通知,通知语言服务器文档不再存在于内存中,并且当前内容已保存到文件系统。 我简单介绍了一个名为treesitter配置neovim-treesitter的插件,它可以用于突出显示代码。 使用lsp协议实现,比单纯使用正则表达式具有更好的呈现效果。 那么,体验lsp效果的第一步就是将其配置吧。 因为treesitter想工作,所以需要根据语言下载支持语言的语法分析模块。 可以使用: TSInstallInfo查看当前安装了哪些分析模块。 发现没有安装模块。 在基于当前配置文件的项目中,首先体验一下lua的效果。 我们可以使用: TSInstall命令下载指定语言的模块。 在此,您将使用TSInstall lua下载lua模块。 然后,可以使用TSUpdate lua更新模块。 和packer很相似。 TSUpdate既可用于下载也可用于更新。 这意味着单个命令完成安装后,可以使用TSBufToggle highlight并使用treesitter将其选中
如果我们每次都需要手动调用命令来高亮显示,那就太不聪明了。 可以将配置文件设置为自动加载语法加亮。
require ( nvim-tree sitter.configs ) ).setup支持的语言ensure_installed={&; #039; html&; #039;&; #039; css&; #039;&; #039; vim&; #039;&; #039; lua&; #039; )。 &; #039; python&; #039; }&; #039;--启用代码高亮显示。 highlight={ enable=true,additional _ vim _ regex _ highlighting=false },--启用增量选项的keymaps={ init \ #039;node_incremental=&; #039;node_decremental=&; #039;scope_incremental=&; #039; &; #039; },启用基于Treesitter的代码格式(=) indent={ enable=true },}--代码折叠vim.wo.foldmethod=&; #039; expr&; #039; vim.wo.foldexpr=&; #039; nvim_treesitter#foldexpr( &; #039; --缺省情况下,vim.wo.foldlevel=99不折叠。 这些配置ensure_installed指示需要支持的语言。 如果设置了某些语言,则会在启动后自动调用。 TSUpdate下载并更新相应语言的server部分。 下载相应的语言模块后,发现代码的着色功能完成得很好。 增量选择器选择一次可以选择块的代码,然后依次放大或缩小选定的语言块。 使用回车启动和放大增量选择,使用后台空间减少增量选择的代码块。 合作伙伴可以根据自己的习惯定义快捷键
也可以使用=设置代码格式。 为了便于我们定义自动命令,每次执行: w写入前自动格式化代码
local auto _ indent=vim.API.nvim _ create _ augroup ( auto _ indent ),{clear=true} ) vim.API.nvim_creaate #039; } )这里事先使用gg改变了光标位置,格式化后使用``返回上次跳转前的位置。
最后,可以使用zc和zo折叠和展开代码。 但是,我自己很少用。 需要调查文件中的符号,例如函数、变量。 我可以用其他插件解决。 如果要做区块的跳转代码的话,我喜欢用%。
现在,我们已经体验了基于lsp实现的treesitter功能,下面将介绍lsp支持几种语言,敬请期待
王者荣耀和小兵互动是七周年的一个活动玩法,想要完成和小兵互动领取加星卡,那么就要按照下面主编提供的方法去
文章导读:现在哪个仙侠手游好?主编今天来给大家推荐一些治愈唯美的手游吧,现在哪个仙侠手游好的推荐,相信有很对
我的世界冰火传说沙蚁螫针剑怎么做很多玩家不知道,冰火传说有很多非常好用的道具武器,沙蚁螫针剑对于其他生物
在《三角战略(TRIANGLE STRATEGY)》中,安娜的定位是刺客/切后排/控制/残局收割,非常强悍的女刺客,可以在单挑敌人
在《三角战略(TRIANGLE STRATEGY)》中,强盗头子的定位是战士/坦克/前排/盗贼,特色偷道具,机动中规中矩,数值方面还
在《三角战略(TRIANGLE STRATEGY)》中,王女-科迪莉亚是第15章选择帮助王子清除残党,特色是拥有诸多强大的恢复技
时间:2023-02-01
时间:2023-02-01
时间:2023-02-01
时间:2023-02-01
时间:2023-02-01
时间:2023-02-01
时间:2023-02-01
时间:2023-02-01
时间:2023-02-01
时间:2023-02-01