summary refs log tree commit diff
path: root/.vim/lua/internal/plugins/zk.lua
diff options
context:
space:
mode:
authorRobert Günzler <r@gnzler.io>2024-11-25 13:30:37 +0100
committerRobert Günzler <r@gnzler.io>2024-11-25 13:58:25 +0100
commit23de12baba9fbfc4ca24581b37c374aa5345cc25 (patch)
treee4b3c421bad572eb85a1089eaad44dc3059ab6e6 /.vim/lua/internal/plugins/zk.lua
parent18e3848110da0a59843058927ea04b496f5db2a5 (diff)
update nvim config
Signed-off-by: Robert Günzler <r@gnzler.io>
Diffstat (limited to '.vim/lua/internal/plugins/zk.lua')
-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,
+  },
+}