zk-nvim icon indicating copy to clipboard operation
zk-nvim copied to clipboard

Error when using `ZkNew` from within a zk-buffer.

Open blastmaster opened this issue 5 months ago • 7 comments

Check if applicable

  • [X] I have searched the existing issues (required)
  • [ ] I'm willing to help fix the problem and contribute a pull request

Describe the bug

When executing ZKNew commands from inside an zk-buffer in Neovim I'll get an error. E488: Trailing characters: The command works fine from any other buffer or a fresh neovim session without any file open.

How to reproduce?

  1. Open any Zk note in Neovim
  2. Try to run :ZkNew with some args. No matter if I try to create a new Note using a keymap like that from your Readme: map("n", "<leader>zn", "<Cmd>ZkNew { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts) or doing things by hand like :ZkNew { dir = "journal", date = "today" }.

I'll get the error: E488: Trailing characters: { dir = "journal", date = "today" }

The same commands and or keymaps work when using them from an non-zk buffer.

zk configuration

# zk configuration file
[note]

template = "default.md"

[extra]


[group.daily]
paths = ["journal/daily"]

[group.daily.note]

filename = "{{format-date now '%Y-%m-%d'}}"
extension = "md"
template = "daily.md"


# MARKDOWN SETTINGS
[format.markdown]

# Enable support for #hashtags.
hashtags = false
# Enable support for :colon:separated:tags:.
colon-tags = true
# Enable support for Bear's #multi-word tags#
# Hashtags must be enabled for multi-word tags to work.
multiword-tags = false

[tool]

editor = "nvim"
fzf-preview = "batcat -p --color always {-1}"


[lsp]

[lsp.diagnostics]
dead-link = "error"

[lsp.completion]

[filter]

[alias]

# Shortcut to a command.
ls = "zk list $@"

# Create a new journal note
daily = 'zk new --no-input "$ZK_NOTEBOOK_DIR/journal/daily"'

conf = '$EDITOR "$ZK_NOTEBOOK_DIR/.zk/config.toml"'

Neovim configuration

-- zk.lua loaded by lazy
return {
  "zk-org/zk-nvim",
  config = function()
    require("zk").setup({
        -- can be "telescope", "fzf", "fzf_lua", "minipick", or "select" (`vim.ui.select`)
        -- it's recommended to use "telescope", "fzf", "fzf_lua", or "minipick"
        picker = "telescope",

        lsp = {
            -- `config` is passed to `vim.lsp.start_client(config)`
            config = {
                cmd = { "zk", "lsp" },
                name = "zk",
                -- on_attach = ...
                -- etc, see `:h vim.lsp.start_client()`
            },

            -- automatically attach buffers in a zk notebook that match the given filetypes
            auto_attach = {
                enabled = true,
                filetypes = { "markdown" },
            },
        },
    })
  end
}


-- top level init.lua
-- define local options for key-mappigns
local opts = { noremap = true, silent = false }

-- Zettelkasten stuff Keymaps
-- create a new note after asking for the new Title.
vim.api.nvim_set_keymap("n", "<leader>zn", "<Cmd>ZkNew { title = vim.fn.input('Title: ') }<CR>", opts)

-- Open notes.
vim.api.nvim_set_keymap("n", "<leader>zo", "<Cmd>ZkNotes { sort = { 'modified' } }<CR>", opts)
-- Open notes associated with the selected tags.
vim.api.nvim_set_keymap("n", "<leader>zt", "<Cmd>ZkTags<CR>", opts)
-- Search for the notes matching a given query.
-- vim.api.nvim_set_keymap("n", "<leader>zf", "<Cmd>ZkNotes { sort = { 'modified' }, match = { vim.fn.input('Search: ') } }<CR>", opts)
vim.api.nvim_set_keymap("n", "<leader>zf", "<Cmd>ZkNotes { sort = { 'modified' } }<CR>", opts)
-- Search for the notes matching the current visual selection.
vim.api.nvim_set_keymap("v", "<leader>zf", ":'<,'>ZkMatch<CR>", opts)

Environment

zk 0.14.1-11-g4a51e39
system: Linux 6.10.9-amd64 x86_64 GNU/Linux
NVIM v0.9.5
Build type: Release
LuaJIT 2.1.1723681758

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info

blastmaster avatar Sep 24 '24 07:09 blastmaster