summary refs log tree commit diff
path: root/.vim/lua/internal/plugins/zk.lua
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.vim/lua/internal/plugins/zk.lua35
1 files changed, 35 insertions, 0 deletions
diff --git a/.vim/lua/internal/plugins/zk.lua b/.vim/lua/internal/plugins/zk.lua
new file mode 100644
index 0000000..76cbcb3
--- /dev/null
+++ b/.vim/lua/internal/plugins/zk.lua
@@ -0,0 +1,35 @@
+return {
+  {
+    lazy = false,
+    'zk-org/zk-nvim',
+    main = 'zk',
+    opts = {
+      picker = 'telescope',
+    },
+    keys = {
+      -- these will work everywhere
+      { ';zc', ':ZkNew ' },
+      { ';zz', '<cmd>ZkNotes {sort={"modified"}}<cr>' },
+      { ';zl', '<cmd>ZkLinks<cr>' },
+      { ';zb', '<cmd>ZkBacklinks<cr>' },
+      { ';zt', '<cmd>ZkTags<cr>' },
+      -- { ';zj', '<cmd>ZkNotes { dir = "500_journals" }<cr>' },
+    },
+    init = function()
+      if not vim.env.ZK_NOTEBOOK_DIR then
+        return
+      end
+      vim.api.nvim_create_autocmd({ 'BufEnter' }, {
+        pattern = vim.env.ZK_NOTEBOOK_DIR .. '/*',
+        callback = function()
+          local o = { remap = true, silent = false, buffer = true }
+          -- these will only work in a zettel
+          vim.keymap.set('n', '-', ':call feedkeys(";zz")<cr>', o)
+          vim.keymap.set('n', '<cr>', '<cmd>lua vim.lsp.buf.definition()<cr>', o)
+        end,
+        group = vim.api.nvim_create_augroup('zk-binds', { clear = true }),
+        once = true,
+      })
+    end,
+  },
+}