Skip to content

molten-nvim

molten-nvim用于与 jupyter 内核交互来运行代码。

安装

他需要一些必备的 Python 包,因此推荐在虚拟环境中使用(venv conda 都可以),之后需要安装:

  • pip install pynvim: 用于通过 Nvim 的远程 API 来与 Jupyter 进行交互
  • pip install jupyter_client: 用于与 Jupyter 进行交互

之后只需要在 Nvim 配置文件中配置:

Lua
return {
    "benlubas/molten-nvim",
    version = "^1.0.0", -- use version <2.0.0 to avoid breaking changes
    build = ":UpdateRemotePlugins",
    init = function()
        -- this is an example, not a default. Please see the readme for more configuration options
        vim.g.molten_output_win_max_height = 12
    end,
    ft = "python",
    keys = {
        { "<Leader>mi", "<cmd>:MoltenInit<CR>", desc = "Initialize Kernel" },
        { "<Leader>ml", "<cmd>:MoltenEvaluateLine<CR>", desc = "Evaluate Line" },
        { "<Leader>mr", "<cmd>:MoltenReevaluateCell<CR>", desc = "Re-evaluate Cell" },
        { "<Leader>mr", "<cmd>:MoltenEvaluateVisual<CR>", mode = "v", desc = "Evaluate Visual Selection" },
        { "<Leader>md", "<cmd>:MoltenDelete<CR>", desc = "Delete Cell" },
        { "<Leader>mh", "<cmd>:MoltenHideOutput<CR>", desc = "Hide output" },
        { "<Leader>mo", "<cmd>:noautocmd MoltenEnterOutput<CR>", desc = "Show/Enter Output" },
    },
}

每次使用都需要 :UpdateRemotePlugins 来启用远程,之后还需要 :MoltenInit 来激活内核。

命令说明

映射 命令 描述
<Leader>mi :MoltenInit python3 为当前缓冲区初始化内核
- :MoltenDeInit 取消当前缓冲区内核(关闭 nvim 时会自动调用)
<Leader>ml :MoltenEvaluateLine 评估当前行的 Python 代码
<Leader>mr :MoltenReevaluateCell 重新评估当前单元格的 Python 代码
<Leader>mr (可视模式) :MoltenEvaluateVisual 评估选定区域的 Python 代码(可视模式)
<Leader>md :MoltenDelete 删除当前单元格
<Leader>mh :MoltenHideOutput 隐藏输出窗口
<Leader>mo :noautocmd MoltenEnterOutput 显示或进入输出窗口
- :MoltenEvaluateCell 评估当前单元格的 Python 代码
- :MoltenRestartKernel 重启当前内核
- :MoltenInterruptKernel 中断当前内核
- :MoltenClearOutput 清除输出窗口