Copyright © 2088 冰狼百灵网游最新活动发布网 All Rights Reserved.
友情链接
非保姆级教程,相信每一个vimer都是乐意折腾的。
写插件需要什么
Lua编程环境
luajit,lua-language-server,自力更生。
调试器
mfussenegger/nvim-dap, jbyuki/one-small-step-for-vimkind,有能力的配置一下,没办法的用print大法。
一般的插件长什么样
lua/
plugin_name/
init.lua
plugin/
plugin_name.lua
lua目录下的lua文件可使用require导入,插件加载时plugin目录下的lua文件会被执行。
这两个目录都不是必须的,但至少要有一个,否则这个插件什么都干不了。
怎么加载本地的插件
所有插件管理器都可以从本地加载插件,lazy.nvim更方便一点,设置一下dev=true,dir=path_to_plugin即可。
插件内部的模块是怎么管理的
在任何地方都可以通过require("plugin_name")导入lua/plugin_name/init.lua。以此类推,导入lua/plugin_name/xxx.lua使用require("plugin_name.xxx")。
不要试图通过相对路径导入模块。
搞个简单的例子看一下
niuiic/cp-image.nvim,这是一个从剪贴板生成图片并在当前缓冲区中插入引用代码的插件。无需细看逻辑实现,关注插件函数的导出与使用即可。
光有lua怎么和编辑器交互
neovim内置了不少lua函数,可以调用这些函数与编辑器和系统进行交互。所有函数都挂在全局变量vim上。
一般的开发熟悉一下vim.fn、vim.api、vim.lsp和vim.loop这几个模块下的函数即可。
vim.fn昔日vimscript函数的lua实现。
vim.api另起炉灶的lua api。
vim.lsplsp lua api。
vim.looplua uv库。
被折腾得半死,能不能有个现成的开发环境
niuiic/modern-neovim-configuration,个人配置,不负责稳定性,不定时破坏性更新,不介意的话可参考配置。
写了些插件,推荐一下,也算是案例
niuiic/format.nvim
格式化插件
可在一次格式化操作中同时应用多个程序,比如执行perttier之后再执行eslint fix解决一下冲突
易配置,易扩展,只要知道怎么用命令格式化文件即可应用该程序
异步格式化
局部格式化
niuiic/divider.nvim
分割线插件
正则匹配自定义代码分割线
高亮、跳转、定位
niuiic/dap-utils.nvim
nvim-dap工具集
保存/复原/切换/搜索断点
保存/复原watches
安全地在调试启动前注入自定义操作
niuiic/translate.nvim
翻译插件
支持任意命令行翻译工具
支持多种输入输出方式
异步
niuiic/part-edit.nvim
独立编辑文件的一部分
比如将markdown文件中的代码块抽离到独立的buffer中编辑,避免lsp等配置的冲突
niuiic/multiple-session.nvim
session管理器
自动保存/恢复session
多session自由切换
自由扩展功能,如保存/恢复断点、watches、quickfix、undo记录等
niuiic/cp-image.nvim
从剪贴板生成图片并插入引用代码
用于实现截图并插入markdown文档的功能