notes/article/neovim.md

2.0 KiB
Raw Permalink Blame History

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 等语言。