diff --git a/nvim/.config/nvim/lua/maps.lua b/nvim/.config/nvim/lua/maps.lua index 5b43433..06d0b24 100644 --- a/nvim/.config/nvim/lua/maps.lua +++ b/nvim/.config/nvim/lua/maps.lua @@ -178,12 +178,13 @@ vim.g.nv_fzf_binds = { map.n.nore['n'] = ':NV' map.n.nore['N'] = ':NV!' --- Mostly dealing with Prose writing from here on out -- Format current Paragraph (esp useful in prose writing) map.n.nore.silent['q'] = 'gqap' map.x.nore.silent['q'] = 'gq' map.n.nore.silent['Q'] = 'vapJgqap' +map.n.silent['mp'] = 'MarkdownPreviewToggle' + -- FORMAT code with -- PLUGIN: formatter.nvim map.n.nore.silent['f'] = ':FormatLock' @@ -248,21 +249,22 @@ map.n.nore['ww'] = [[:lua require 'zettelkasten'.index_open() ]] -- create a lazygit window, set up in toggleterm settings map.n.nore['G'] = ':Lazygit' --- PLUGIN: slime and ipython-cell --- send line / region, not adhering to cells -map.n['cs'] = 'SlimeLineSend' -map.x['cs'] = 'SlimeRegionSend' --- send complete script to repl / benchmark execution -map.n.nore['cr'] = ':IPythonCellRun' -map.n.nore['cR'] = ':IPythonCellRunTime' --- send current cell / send and go to next -map.n.nore['cc'] = ':IPythonCellExecuteCellVerbose' -map.n.nore['C'] = ':IPythonCellExecuteCellVerboseJump' --- clear ipython repl -map.n.nore['cl'] = ':IPythonCellClear' --- jump to previous/ next cell -map.n.nore[']c'] = ':IPythonCellNextCell' -map.n.nore['[c'] = ':IPythonCellPrevCell' +-- PLUGIN: magma-nvim +-- Operate jupyter notebooks from within vim +map.n.nore.silent['rr'] = ':MagmaEvaluateLine' +map.n.nore.silent['R'] = '?^```{jV/```k:MagmaEvaluateVisual' +map.x.nore.silent['r'] = ':MagmaEvaluateVisual' +map.n.nore.expr.silent['r'] = "nvim_exec('MagmaEvaluateOperator', v:true)" +map.n.nore.silent['re'] = ':MagmaReevaluateCell' +map.n.nore.silent['ro'] = ':MagmaShowOutput' +map.n.nore.silent['rq'] = ':noautocmd :MagmaEnterOutput' +map.n.nore.silent['rc'] = ':MagmaDelete' +map.n.nore.silent['rd'] = ':MagmaInterrupt' + +map.n.nore.silent['rO'] = ':lua vim.g.magma_automatically_open_output = not(vim.g.magma_automatically_open_output)' +-- jump to beginning of previous/ next cell code +map.n.nore[']r'] = '/^```{}:nohl' +map.n.nore['[r'] = '?^```n}:nohl' -- insert cell header above/below map.n.nore['cO'] = ':IPythonCellInsertAbovea' map.n.nore['co'] = ':IPythonCellInsertBelowa' diff --git a/nvim/.config/nvim/lua/plugins.lua b/nvim/.config/nvim/lua/plugins.lua index 868ce6e..028aa7d 100644 --- a/nvim/.config/nvim/lua/plugins.lua +++ b/nvim/.config/nvim/lua/plugins.lua @@ -1,7 +1,7 @@ local ensure_packer = function() local fn = vim.fn local install_path = fn.stdpath('data') .. - '/site/pack/packer/start/packer.nvim' + '/site/pack/packer/start/packer.nvim' if fn.empty(fn.glob(install_path)) > 0 then fn.system({ 'git', 'clone', '--depth', '1', @@ -16,11 +16,11 @@ end local packer_bootstrap = ensure_packer() -- Compile on plugin edits -vim.api.nvim_create_autocmd({"BufWritePost"}, { +vim.api.nvim_create_autocmd({ "BufWritePost" }, { pattern = "plugins.lua", command = "PackerCompile", desc = "Compile plugins after editing plugin list", - group = vim.api.nvim_create_augroup('compilepackages', {clear = true}) + group = vim.api.nvim_create_augroup('compilepackages', { clear = true }) }) local use = require("packer").use @@ -42,7 +42,7 @@ require("packer").startup(function() use 'vifm/vifm.vim' -- integrate file manager use { 'lewis6991/gitsigns.nvim', -- show vcs changes on left-hand gutter - requires = {'nvim-lua/plenary.nvim'}, + requires = { 'nvim-lua/plenary.nvim' }, tag = 'release', config = function() require('plug._gitsigns') end, event = "BufRead" @@ -98,52 +98,42 @@ require("packer").startup(function() -- statusline use { 'nvim-lualine/lualine.nvim', - requires = {'kyazdani42/nvim-web-devicons', opt = true}, + requires = { 'kyazdani42/nvim-web-devicons', opt = true }, config = function() require('plug._lualine') end } -- writing - use {'vim-pandoc/vim-pandoc-syntax'} - use {'vim-pandoc/vim-pandoc'} - use {'vim-pandoc/vim-criticmarkup'} + use { 'vim-pandoc/vim-pandoc-syntax' } + use { 'vim-pandoc/vim-pandoc' } + use { 'vim-pandoc/vim-criticmarkup' } use { "quarto-dev/quarto-vim", - requires = {{"vim-pandoc/vim-pandoc-syntax"}}, - ft = {"quarto"} + requires = { { "vim-pandoc/vim-pandoc-syntax" } }, + ft = { "quarto" } } use 'micarmst/vim-spellsync' -- personal dict improvements for git sync - use {'folke/zen-mode.nvim', config = require('zen-mode').setup()} -- provide distraction free writing + use { 'folke/zen-mode.nvim', config = require('zen-mode').setup() } -- provide distraction free writing use 'folke/twilight.nvim' -- provide even distraction free-er writing (lowlight paragraphs) use 'alok/notational-fzf-vim' -- quickly search through the wiki + use({ + "iamcco/markdown-preview.nvim", -- generate an auto-updating html preview for md files + run = function() vim.fn["mkdp#util#install"]() end + }) -- languages - use {'euclidianAce/BetterLua.vim', ft = 'lua'} -- better syntax highlighting for lua + use { 'euclidianAce/BetterLua.vim', ft = 'lua' } -- better syntax highlighting for lua use 'aliou/bats.vim' -- enable syntax for bats shell-code testing library -- REPL work use { - 'jpalardy/vim-slime', -- send arbitrary code chunks to REPLs + 'WhiteBlackGoose/magma-nvim-goose', + run = ":UpdateRemotePlugins", config = function() - vim.g.slime_target = 'tmux' - vim.g.slime_paste_file = vim.fn.tempname() - vim.g.slime_default_config = { - socket_name = "default", - target_pane = "{last}" - } - vim.g.slime_python_ipython = 1 - vim.g.slime_no_mappings = 1 - end - } - use { - 'hanschen/vim-ipython-cell', -- send code 'cells' to REPL - ft = "python", - config = function() - vim.g.ipython_cell_highlight_cells_ft = {'python'} - vim.g.ipython_cell_insert_tag = "## Cell" + vim.g.magma_image_provider = "kitty" + vim.g.magma_automatically_open_output = false end } - -- -- nvim plugs use { 'echasnovski/mini.nvim', @@ -173,19 +163,19 @@ require("packer").startup(function() use { "nvim-telescope/telescope.nvim", requires = { - {"nvim-lua/popup.nvim"}, {"nvim-lua/plenary.nvim"}, - {"nvim-telescope/telescope-fzf-native.nvim", run = 'make'} + { "nvim-lua/popup.nvim" }, { "nvim-lua/plenary.nvim" }, + { "nvim-telescope/telescope-fzf-native.nvim", run = 'make' } }, config = function() require('plug._telescope') end } use { 'protex/better-digraphs.nvim', - requires = {{"nvim-telescope/telescope.nvim"}} + requires = { { "nvim-telescope/telescope.nvim" } } } -- snippeting - use {"hrsh7th/vim-vsnip", event = "InsertEnter"} -- snippet engine - use {"rafamadriz/friendly-snippets", event = "InsertEnter"} -- many snippets + use { "hrsh7th/vim-vsnip", event = "InsertEnter" } -- snippet engine + use { "rafamadriz/friendly-snippets", event = "InsertEnter" } -- many snippets -- treesitter use { @@ -198,7 +188,7 @@ require("packer").startup(function() use { 'RRethy/nvim-treesitter-textsubjects', -- allows using . and ; to target treesitter branches config = function() - require'nvim-treesitter.configs'.setup { + require 'nvim-treesitter.configs'.setup { textsubjects = { enable = true, keymaps = { @@ -225,7 +215,7 @@ require("packer").startup(function() use 'ray-x/lsp_signature.nvim' use { 'ray-x/navigator.lua', - requires = {'ray-x/guihua.lua', run = 'cd lua/fzy && make'}, + requires = { 'ray-x/guihua.lua', run = 'cd lua/fzy && make' }, config = function() require('plug._lsp') end } -- and completion @@ -241,7 +231,7 @@ require("packer").startup(function() } use { 'aspeddro/cmp-pandoc.nvim', - requires = {'nvim-lua/plenary.nvim', 'jbyuki/nabla.nvim'} + requires = { 'nvim-lua/plenary.nvim', 'jbyuki/nabla.nvim' } } require('plug._cmp')