Neovim 版 Basilisk
basilisk.nvim 将 Neovim 内置的 LSP 客户端(0.11+,通过 vim.lsp.config / vim.lsp.enable)连接到 Basilisk 语言服务器。一个插件覆盖整个工作流:诊断、悬停、自动补全、跳转到定义、重命名、代码操作、格式化、内联提示、调试(通过 nvim-dap)、测试浏览器和性能分析。
需要安装两个部分——插件(通过您的插件管理器)和 basilisk 二进制文件(自动下载;通常您永远不需要自己安装它)。
1. 安装插件
lazy.nvim
{
"Nimblesite/basilisk.nvim",
ft = "python",
dependencies = { "mfussenegger/nvim-dap" }, -- 可选,用于调试
opts = {},
}
packer.nvim
use {
"Nimblesite/basilisk.nvim",
ft = "python",
config = function()
require("basilisk").setup({})
end,
}
vim-plug
Plug 'Nimblesite/basilisk.nvim'
然后,在 plug#end() 之后:
lua require("basilisk").setup({})
vim.pack(内置,Neovim 0.12+)
vim.pack.add({
{ src = "https://github.com/Nimblesite/basilisk.nvim",
version = vim.version.range("*") }, -- 最新稳定标签
})
require("basilisk").setup({})
2. 二进制文件随插件一同提供
您不需要单独安装 Basilisk 二进制文件。 打开一个 Python 文件:如果找不到 basilisk 二进制文件,插件会从 GitHub 发布页下载适合您平台的最新版本,缓存到 Neovim 的数据目录中,然后启动语言服务器。您也可以用 :BasiliskInstall 显式触发这一过程。
已经安装了 Basilisk——通过 Homebrew、Scoop 或 cargo,或者它已在您的 PATH 上?插件会找到并使用那个安装。
用 :checkhealth basilisk 验证一切是否正常。
更新
插件和二进制文件分别更新:
- 插件——和其他插件一样:
:Lazy update、:PackerSync或:PlugUpdate。 - 二进制文件——当存在更新的发布版本时,启动时会有提示。运行
:BasiliskUpdate:它会请求确认、下载新版本并就地重启 LSP。如果您的二进制文件由某个包管理器管理,Basilisk 绝不会覆盖它——提示会给出正确的命令(brew upgrade basilisk、scoop update basilisk或cargo install basilisk-cli)。
配置 Basilisk 设置
开箱即可零配置工作。要调整行为,请向 setup() 传入选项:
require("basilisk").setup({
analysis_mode = "wholeModule", -- "openFilesOnly" | "wholeModule" | "crossModule"
inlay_hints = {
parameter_names = true,
variable_types = true,
},
formatter = "ruff", -- 内嵌于 basilisk 二进制文件;或 "none"
})
完整的选项列表(调试器、测试浏览器、uv 集成、按键映射、状态栏)在插件的帮助文件中::h basilisk-configuration。
调试、测试与性能分析
- 调试——安装 nvim-dap 后,
:BasiliskDebugFile(或您的 DAP 按键映射)会通过debugpy调试当前文件。参见调试。 - 测试浏览器——
:BasiliskTestToggle打开测试面板;:BasiliskTestRun运行测试。 - 性能分析——
:BasiliskProfile/:BasiliskProfileStop驱动内置分析器。参见性能分析指南。
所有命令都列在 :h basilisk-commands 中。
高级:覆盖二进制文件
对于开发版构建或特定的系统安装,请让插件指向一个显式路径:
require("basilisk").setup({
binary_path = "/absolute/path/to/basilisk",
})
……或者设置 BASILISK_PATH 环境变量。该设置优先;两者都未设置时,插件使用上文的解析顺序。