python lazyvim自动格式化
在使用 LazyVim(Neovim 的 Lazy 配置)时,自动格式化 Python 代码可以通过设置 null-ls
插件并结合 Python 格式化工具(如 black
、isort
等)来实现。
下面是配置 LazyVim 自动格式化 Python 的步骤:
1. 安装 Python 格式化工具
首先,确保你已经安装了 Python 格式化工具,比如 black
和 isort
。
pip install black isort
2. 配置 LazyVim
LazyVim 使用 null-ls
来集成格式化工具。你需要在 LazyVim 的配置文件中配置 Python 文件的自动格式化。
打开 ~/.config/nvim/lua/plugins/null-ls.lua
(或者你的 LazyVim 配置路径),并进行以下修改:
return {
"jose-elias-alvarez/null-ls.nvim",
opts = function(_, opts)
local nls = require("null-ls")
-- 确保 opts.sources 是一个表
opts.sources = opts.sources or {}
-- 添加 black 和 isort 作为格式化工具
opts.sources = vim.list_extend(opts.sources, {
nls.builtins.formatting.black,
nls.builtins.formatting.isort,
})
end,
}
这会将 black
和 isort
作为 Python 的格式化工具加载到 null-ls
中。
3. 配置自动格式化
为了让 LazyVim 自动格式化 Python 文件,你可以通过以下方式设置保存时自动格式化。
在 ~/.config/nvim/init.lua
中添加:
-- 在保存时自动格式化
vim.api.nvim_create_autocmd("BufWritePre", {
pattern = "*.py",
callback = function()
vim.lsp.buf.format({ async = false })
end,
})
这样,每次保存 .py
文件时,LazyVim 就会自动调用 black
和 isort
进行格式化。
4. 测试自动格式化
重新启动 Neovim 并打开一个 Python 文件,编辑后保存,观察是否会自动格式化代码。如果配置正确,代码应该会自动按照 black
和 isort
的规范进行格式化。
额外工具
你可以根据需要安装其他 Python 格式化工具,如 flake8
或 autopep8
,并按上述方式在 null-ls
中配置。