zk-nvim
zk-nvim copied to clipboard
Error when using `ZkNew` from within a zk-buffer.
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?
- Open any Zk note in Neovim
- 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