52 lines
2.3 KiB
Lua
52 lines
2.3 KiB
Lua
-- Autocmds are automatically loaded on the VeryLazy event
|
|
-- Default autocmds that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/autocmds.lua
|
|
-- Add any additional autocmds here
|
|
vim.api.nvim_create_autocmd("FileType", {
|
|
pattern = { "markdown" },
|
|
callback = function()
|
|
vim.opt_local.textwidth = 80
|
|
vim.opt_local.wrap = true
|
|
vim.opt_local.spell = true
|
|
vim.opt_local.tabstop = 2
|
|
vim.opt_local.softtabstop = 2
|
|
vim.opt_local.shiftwidth = 2
|
|
vim.opt_local.expandtab = true
|
|
|
|
-- Add the key mappings only for Markdown files in a zk notebook.
|
|
if require("zk.util").notebook_root(vim.fn.expand("%:p")) ~= nil then
|
|
local function map(...)
|
|
vim.api.nvim_buf_set_keymap(0, ...)
|
|
end
|
|
local opts = { noremap = true, silent = false }
|
|
|
|
-- Open the link under the caret.
|
|
map("n", "<CR>", "<Cmd>lua vim.lsp.buf.definition()<CR>", opts)
|
|
|
|
-- Create a new note after asking for its title.
|
|
-- This overrides the global `<leader>zn` mapping to create the note in the same directory as the current buffer.
|
|
map("n", "<leader>zn", "<Cmd>ZkNew { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>", opts)
|
|
-- Create a new note in the same directory as the current buffer, using the current selection for title.
|
|
map("v", "<leader>znt", ":'<,'>ZkNewFromTitleSelection { dir = vim.fn.expand('%:p:h') }<CR>", opts)
|
|
-- Create a new note in the same directory as the current buffer, using the current selection for note content and asking for its title.
|
|
map(
|
|
"v",
|
|
"<leader>znc",
|
|
":'<,'>ZkNewFromContentSelection { dir = vim.fn.expand('%:p:h'), title = vim.fn.input('Title: ') }<CR>",
|
|
opts
|
|
)
|
|
|
|
-- Open notes linking to the current buffer.
|
|
map("n", "<leader>zb", "<Cmd>ZkBacklinks<CR>", opts)
|
|
-- Alternative for backlinks using pure LSP and showing the source context.
|
|
--map('n', '<leader>zb', '<Cmd>lua vim.lsp.buf.references()<CR>', opts)
|
|
-- Open notes linked by the current buffer.
|
|
map("n", "<leader>zl", "<Cmd>ZkLinks<CR>", opts)
|
|
|
|
-- Preview a linked note.
|
|
map("n", "K", "<Cmd>lua vim.lsp.buf.hover()<CR>", opts)
|
|
-- Open the code actions for a visual selection.
|
|
map("v", "<leader>za", ":'<,'>lua vim.lsp.buf.range_code_action()<CR>", opts)
|
|
end
|
|
end,
|
|
})
|