Skip to content

DavidRR-F/notebook-manager.nvim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Notebook Manager

Notebook Manager let you create and manage jupyter notebooks and kernels via neovim.

You can create notebooks and kernels using the active python environment or with one of the supported package managers poetry, rye, pipenv. If your project directory has a toml configuration file the plugin will default to using your package manager running commands and populating notebook metadata.

Use notebook navigator with the following plugins to complete your vim notebook workflow:

  • Jupytext
  • NotebookNavigator
  • VenvSelector

Requirements

  • Neovim ^9.0
  • Python ^3.8
  • Required Python Packages
    • ipykernel (for initializing kernels)
    • jupyter (for managing existing kernels)

Usage

Notebooks

  • CreateBook: Create .ipynb file in configured directory
  • DeleteBook: Delete .ipynb/.py file in configured directory
createbook.mp4

Kernel Menu

  • j/k: Navigate menu
  • q: Escape menu
  • a: Create a new kernel
  • d: Delete selected kernel
kernelmenu.mp4

Basic Setup

Lazy.vim
return {
  "DavidRR-F/notebook-manager.nvim",
  dependencies = {
    "nvim-lua/plenary.nvim",
  },
  cmd = {
    "CreateBook",
    "DeleteBook",
    "CreateKernel",
    "DeleteKernel",
    "KernelMenuToggle",
  },
  opts = {
    notebook_dir = "./notebooks",
    ignore_package_manager = false,
  },
  keys = {
    { "<leader>km", "<cmd>:KernelMenuToggle<cr>", desc = "Toggle Kernel List Menu" },
  }
}
Packer
use {
  'DavidRR-F/notebook-manager.nvim',
  requires = { 'nvim-lua/plenary.nvim' },
  cmd = {
    "CreateBook",
    "DeleteBook",
    "CreateKernel",
    "DeleteKernel",
    "KernelMenuToggle",
  },
  config = function()
    require('notebook-manager').setup{
      notebook_dir = "./notebooks",
      ignore_package_manager = false,
    }
  end,
  keys = {
    { "<leader>km", "<cmd>:KernelMenuToggle<cr>", desc = "Toggle Kernel List Menu" },
  }
}
Vim-plug
call plug#begin('~/.vim/plugged')

Plug 'nvim-lua/plenary.nvim'
Plug 'DavidRR-F/notebook-manager.nvim'

call plug#end()

" Lazy load commands
autocmd! VimEnter * command! -nargs=* CreateBook lua require('notebook-manager.commands').create_notebook(<f-args>)
autocmd! VimEnter * command! -nargs=* DeleteBook lua require('notebook-manager.commands').delete_notebook(<f-args>)
autocmd! VimEnter * command! -nargs=* CreateKernel lua require('notebook-manager.commands').create_kernel(<f-args>)
autocmd! VimEnter * command! -nargs=* DeleteKernel lua require('notebook-manager.commands').delete_kernel(<f-args>)
autocmd! VimEnter * command! KernelMenuToggle lua require('notebook-manager.commands').kernel_menu_toggle()

" Configuration
lua << EOF
require('notebook-manager').setup{
  notebook_dir = "./notebooks",
  ignore_package_manager = false,
}
EOF

" Keybindings
nmap <leader>km :KernelMenuToggle<CR>

Options

Option Description
notebook_dir directory to manage notebook files
ignore_package_manager use active python evironment rather than projects package manager

About

Neovim Jupyter Notebook/Kernel Manager Plugin

Topics

Resources

License

Stars

Watchers

Forks

Languages