2.0 KiB
2.0 KiB
neovim notes
API 记录
执行系统命令
0.10.x 版本之后
vim.system
0.10.x 版本之前
vim.api.nvim_exec2
查看 table
print(vim.inspect(table))
或者 vim.print
,以可读的方式输打印参数,如:
vim.print(vim.fn.api_info())
-- execute system command
local has_cmd = function(cmd)
res = vim.system({'which', cmd}, { text = true}):wait() -- ; print(res.code)
-- no error, everything is ok
if res.code == 0 then
return true
end
-- error
return false
end
插件
目前插件体系已经经过了三次重构,从 vimscript 转向 lua 体系,还需要做的是完善 root 用户的 nvim 配置。
插件管理器
插件系列最重要的是有一个插件管理器。
Vim-Plug
Vim 时代的插件管理器,后来使用 neovim 后放弃。
packer
转 neovim 后使用的第一个基于 lua 开发的插件管理器,后来作者停止了维护,转向了 lazy.nvim。
lazy.nvim
目前使用的插件管理器,同样基于 lua 开发。
编辑器扩展
这些插件主要是增强编辑功能,如彩色括号、快速跳转、括号自动补全等。
快速跳转
现在常见的快速跳转有两种,一种是 easymotion
类型,一种是 sneak
类型,前者触发后会在可跳转的字符上出现字母标记。
后者是记住要跳转的字符后进行前缀匹配。个人建议选哪个主要取决于其他 IDE 提供的 vim 插件支持哪个,尽量保证一致的操作体验。
括号匹配
neovim 有强大的 treesitter,基于此对上下文代码进行解析,实现彩虹括号、自动补全等功能。
对齐插件
在视觉模式下,选中一些代码库,按照某个字符进行对齐,主要是好看,尤其是写 markdown 表格的时候。
注释
使用快捷键快速对代码进行注释和取消注释,就像 IDE 一样。
代码开发类扩展
取决于经常使用哪种语言进行开发,vim/neovim 比较适合 Python/C/C++/Rust/Golang/lua 等语言。