Init commit

This commit is contained in:
Archie Fox
2025-07-25 13:09:33 +03:00
commit 7f1d7f48dd
30 changed files with 1469 additions and 0 deletions

65
lua/config/keymaps.lua Normal file
View File

@@ -0,0 +1,65 @@
-- Keymaps are automatically loaded on the VeryLazy event
-- Default keymaps that are always set: https://github.com/LazyVim/LazyVim/blob/main/lua/lazyvim/config/keymaps.lua
-- Add any additional keymaps here
local k = vim.keymap
-- k.set("n", ";", ":", { desc = "" })
k.set("i", "jj", "<esc>", { desc = "" })
k.set("i", "jk", "<esc><cmd>w<cr>", { desc = "Save" })
k.set("n", "<leader>a", ":keepjumps normal! ggVG<cr>")
k.set({ "n", "v" }, "<M-t>", ":lua Snacks.terminal.get()<cr>", { desc = "Terminal" })
k.set({ "t", "n", "v" }, "<C-h>", "<C-\\><C-n><C-w>h", { desc = "Go to left window" })
k.set({ "t", "n", "v" }, "<C-j>", "<C-\\><C-n><C-w>j", { desc = "Go to bottom window" })
k.set({ "t", "n", "v" }, "<C-k>", "<C-\\><C-n><C-w>k", { desc = "Go to top window" })
k.set({ "t", "n", "v" }, "<C-l>", "<C-\\><C-n><C-w>l", { desc = "Go to right window" })
k.set("n", "<leader>li", "<cmd>LspInfo<cr>", { desc = "LSP Info" })
k.set("n", "<leader>o", ":lua Snacks.dashboard()<cr>", { desc = "Dashboard" })
-- Основные горячие клавиши для Obsidian
k.set("n", "<leader>of", ":ObsidianQuickSwitch<CR>", { desc = "Quick switch" })
k.set("n", "<leader>on", ":ObsidianNew<CR>", { desc = "New note" })
k.set("n", "<leader>os", ":ObsidianSearch<CR>", { desc = "Search notes" })
k.set("n", "<leader>ot", ":ObsidianTags<CR>", { desc = "Tags" })
k.set("n", "<leader>ob", ":ObsidianBacklinks<CR>", { desc = "Backlinks" })
k.set("n", "<leader>ol", ":ObsidianLinks<CR>", { desc = "Links" })
k.set("n", "<leader>oo", ":ObsidianOpen<CR>", { desc = "Open in Obsidian" })
k.set("n", "<leader>or", ":ObsidianRename<CR>", { desc = "Rename note" })
k.set("n", "<leader>op", ":ObsidianPasteImg<CR>", { desc = "Paste image" })
k.set("n", "<leader>ow", ":ObsidianWorkspace<CR>", { desc = "Switch workspace" })
-- Горячие клавиши для Markdown
k.set("n", "<leader>mp", ":MarkdownPreviewToggle<CR>", { desc = "Toggle preview" })
k.set("n", "<leader>mg", ":Glow<CR>", { desc = "Glow preview" })
k.set("n", "<leader>mt", ":TableModeToggle<CR>", { desc = "Table mode" })
k.set("n", "<leader>mc", ":lua require('markdown-togglecheck').toggle()<CR>", { desc = "Toggle checkbox" })
-- Splitting & Resizing
k.set("n", "<leader>sv", ":vsplit<CR>", { desc = "Split window vertically" })
k.set("n", "<leader>sh", ":split<CR>", { desc = "Split window horizontally" })
k.set("n", "<C-Up>", ":resize +2<CR>", { desc = "Increase window height" })
k.set("n", "<C-Down>", ":resize -2<CR>", { desc = "Decrease window height" })
k.set("n", "<C-Left>", ":vertical resize -2<CR>", { desc = "Decrease window width" })
k.set("n", "<C-Right>", ":vertical resize +2<CR>", { desc = "Increase window width" })
-- Move lines up/down
k.set("n", "<A-j>", ":m .+1<CR>==", { desc = "Move line down" })
k.set("n", "<A-k>", ":m .-2<CR>==", { desc = "Move line up" })
k.set("v", "<A-j>", ":m '>+1<CR>gv=gv", { desc = "Move selection down" })
k.set("v", "<A-k>", ":m '<-2<CR>gv=gv", { desc = "Move selection up" })
-- Better indenting in visual mode
k.set("v", "<", "<gv", { desc = "Indent left and reselect" })
k.set("v", ">", ">gv", { desc = "Indent right and reselect" })
vim.keymap.set("n", "gg", function()
vim.api.nvim_win_set_cursor(0, { 1, 0 })
end, { desc = "Go to first line" })
vim.keymap.set("n", "G", function()
local line_count = vim.api.nvim_buf_line_count(0)
vim.api.nvim_win_set_cursor(0, { line_count, 0 })
end, { desc = "Go to last line" })