Быстрый выход
This commit is contained in:
		
							parent
							
								
									4d3bb0270a
								
							
						
					
					
						commit
						0aeec22553
					
				
					 2 changed files with 114 additions and 53 deletions
				
			
		| 
						 | 
				
			
			@ -1,65 +1,126 @@
 | 
			
		|||
local map = vim.api.nvim_set_keymap
 | 
			
		||||
local kmap = vim.keymap.set
 | 
			
		||||
local opts = { noremap = true, silent = true }
 | 
			
		||||
 | 
			
		||||
map("n", "<Space>", "<Nop>", opts)
 | 
			
		||||
map("n", "<Home>", "^", opts)
 | 
			
		||||
map("n", "<End>", "$", opts)
 | 
			
		||||
map("v", "<Home>", "^", opts)
 | 
			
		||||
map("v", "<End>", "$", opts)
 | 
			
		||||
map("i", "<Home>", "<C-o>^", opts)
 | 
			
		||||
map("i", "<End>", "<C-o>$", opts)
 | 
			
		||||
-- Базовые настройки навигации --
 | 
			
		||||
map("n", "<Space>", "<Nop>", { noremap = true, silent = true })
 | 
			
		||||
 | 
			
		||||
map("v", "i", "<S-i>", opts)
 | 
			
		||||
map("v", "a", "<S-a>", opts)
 | 
			
		||||
-- Навигация в начало/конец строки
 | 
			
		||||
map("n", "<Home>", "^", { noremap = true, silent = true })
 | 
			
		||||
map("n", "<End>", "$", { noremap = true, silent = true })
 | 
			
		||||
map("v", "<Home>", "^", { noremap = true, silent = true })
 | 
			
		||||
map("v", "<End>", "$", { noremap = true, silent = true })
 | 
			
		||||
map("i", "<Home>", "<C-o>^", { noremap = true, silent = true })
 | 
			
		||||
map("i", "<End>", "<C-o>$", { noremap = true, silent = true })
 | 
			
		||||
 | 
			
		||||
-- Перемещение между буферами
 | 
			
		||||
map("n", "<leader>bn", "<cmd>bnext<CR>", opts) -- Следующий буфер
 | 
			
		||||
map("n", "<leader>bp", "<cmd>bprevious<CR>", opts) -- Предыдущий буфер
 | 
			
		||||
map("n", "<leader>bd", "<cmd>bdelete<CR>", opts) -- Закрыть текущий буфер
 | 
			
		||||
map("n", "<leader>w", "<cmd>wa<CR>", opts)
 | 
			
		||||
-- Фикс для визуального режима
 | 
			
		||||
map("v", "i", "<S-i>", { noremap = true, silent = true })
 | 
			
		||||
map("v", "a", "<S-a>", { noremap = true, silent = true })
 | 
			
		||||
 | 
			
		||||
-- Tree
 | 
			
		||||
map("n", "<F3>", ":NvimTreeToggle<CR>", opts)
 | 
			
		||||
-- Управление буферами --
 | 
			
		||||
kmap("n", "<leader>bn", "<cmd>bnext<CR>", { noremap = true, silent = true, desc = "Next buffer" })
 | 
			
		||||
kmap("n", "<leader>bp", "<cmd>bprevious<CR>", { noremap = true, silent = true, desc = "Previous buffer" })
 | 
			
		||||
kmap("n", "<leader>bd", "<cmd>bdelete<CR>", { noremap = true, silent = true, desc = "Delete buffer" })
 | 
			
		||||
kmap("n", "<leader>w", "<cmd>wa<CR>", { noremap = true, silent = true, desc = "Save all files" })
 | 
			
		||||
kmap("n", "qq", "<cmd>q<CR>")
 | 
			
		||||
-- Управление вкладками --
 | 
			
		||||
kmap("n", "<A-Right>", ":tabnext<CR>", { noremap = true, silent = true, desc = "Next tab" })
 | 
			
		||||
kmap("n", "<A-Left>", ":tabprevious<CR>", { noremap = true, silent = true, desc = "Previous tab" })
 | 
			
		||||
kmap("n", "<leader>tn", ":tabnew<CR>", { noremap = true, silent = true, desc = "New tab" })
 | 
			
		||||
kmap("n", "<leader>tc", ":tabclose<CR>", { noremap = true, silent = true, desc = "Close tab" })
 | 
			
		||||
 | 
			
		||||
-- Telescope
 | 
			
		||||
map("n", "<leader>ff", "<cmd>Telescope find_files<CR>", opts)
 | 
			
		||||
map("n", "<leader>fg", "<cmd>Telescope live_grep<CR>", opts)
 | 
			
		||||
map("n", "<leader>fb", "<cmd>Telescope buffers<CR>", opts)
 | 
			
		||||
-- Быстрый переход по вкладкам --
 | 
			
		||||
for i = 1, 9 do
 | 
			
		||||
	kmap("n", "<A-" .. i .. ">", ":tabn " .. i .. "<CR>", { noremap = true, silent = true, desc = "Go to tab " .. i })
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- LSP
 | 
			
		||||
kmap("n", "<leader>e", vim.diagnostic.open_float, opts)
 | 
			
		||||
kmap("n", "[d", vim.diagnostic.goto_prev, opts)
 | 
			
		||||
kmap("n", "]d", vim.diagnostic.goto_next, opts)
 | 
			
		||||
kmap("n", "<leader>q", vim.diagnostic.setloclist, opts)
 | 
			
		||||
-- Файловый менеджер --
 | 
			
		||||
kmap("n", "<F3>", ":NvimTreeToggle<CR>", { noremap = true, silent = true, desc = "Toggle file tree" })
 | 
			
		||||
 | 
			
		||||
-- стандартные горячие клавиши для LSP, больше в документации
 | 
			
		||||
-- https://github.com/neovim/nvim-lspconfig
 | 
			
		||||
kmap("n", "gD", vim.lsp.buf.declaration, opts)
 | 
			
		||||
kmap("n", "gd", vim.lsp.buf.definition, opts)
 | 
			
		||||
kmap("n", "K", vim.lsp.buf.hover, opts)
 | 
			
		||||
kmap("n", "gi", vim.lsp.buf.implementation, opts)
 | 
			
		||||
kmap("n", "<C-k>", vim.lsp.buf.signature_help, opts)
 | 
			
		||||
kmap("n", "<leader>wa", vim.lsp.buf.add_workspace_folder, opts)
 | 
			
		||||
kmap("n", "<leader>wr", vim.lsp.buf.remove_workspace_folder, opts)
 | 
			
		||||
-- Поиск с Telescope --
 | 
			
		||||
kmap("n", "<leader>ff", "<cmd>Telescope find_files<CR>", { noremap = true, silent = true, desc = "Find files" })
 | 
			
		||||
kmap("n", "<leader>fg", "<cmd>Telescope live_grep<CR>", { noremap = true, silent = true, desc = "Live grep" })
 | 
			
		||||
kmap("n", "<leader>fb", "<cmd>Telescope buffers<CR>", { noremap = true, silent = true, desc = "Find buffers" })
 | 
			
		||||
 | 
			
		||||
-- LSP функции --
 | 
			
		||||
kmap("n", "<leader>e", vim.diagnostic.open_float, { noremap = true, silent = true, desc = "Show diagnostics" })
 | 
			
		||||
kmap("n", "[d", vim.diagnostic.goto_prev, { noremap = true, silent = true, desc = "Previous diagnostic" })
 | 
			
		||||
kmap("n", "]d", vim.diagnostic.goto_next, { noremap = true, silent = true, desc = "Next diagnostic" })
 | 
			
		||||
kmap("n", "<leader>q", vim.diagnostic.setloclist, { noremap = true, silent = true, desc = "Add to location list" })
 | 
			
		||||
 | 
			
		||||
kmap("n", "gD", vim.lsp.buf.declaration, { noremap = true, silent = true, desc = "Go to declaration" })
 | 
			
		||||
kmap("n", "gd", vim.lsp.buf.definition, { noremap = true, silent = true, desc = "Go to definition" })
 | 
			
		||||
kmap("n", "K", vim.lsp.buf.hover, { noremap = true, silent = true, desc = "Show documentation" })
 | 
			
		||||
kmap("n", "gi", vim.lsp.buf.implementation, { noremap = true, silent = true, desc = "Go to implementation" })
 | 
			
		||||
kmap("n", "<C-k>", vim.lsp.buf.signature_help, { noremap = true, silent = true, desc = "Signature help" })
 | 
			
		||||
kmap(
 | 
			
		||||
	"n",
 | 
			
		||||
	"<leader>wa",
 | 
			
		||||
	vim.lsp.buf.add_workspace_folder,
 | 
			
		||||
	{ noremap = true, silent = true, desc = "Add workspace folder" }
 | 
			
		||||
)
 | 
			
		||||
kmap(
 | 
			
		||||
	"n",
 | 
			
		||||
	"<leader>wr",
 | 
			
		||||
	vim.lsp.buf.remove_workspace_folder,
 | 
			
		||||
	{ noremap = true, silent = true, desc = "Remove workspace folder" }
 | 
			
		||||
)
 | 
			
		||||
kmap("n", "<leader>wl", function()
 | 
			
		||||
	print(vim.inspect(vim.lsp.buf.list_workspace_folders()))
 | 
			
		||||
end, opts)
 | 
			
		||||
kmap("n", "<leader>D", vim.lsp.buf.type_definition, opts)
 | 
			
		||||
kmap("n", "<leader>rn", vim.lsp.buf.rename, opts)
 | 
			
		||||
kmap("n", "<leader>ca", vim.lsp.buf.code_action, opts)
 | 
			
		||||
kmap("n", "gr", vim.lsp.buf.references, opts)
 | 
			
		||||
-- kmap('n', '<leader>f', vim.lsp.buf.formatting, opts)
 | 
			
		||||
kmap("n", "<leader>bb", "<cmd>lua require'dap'.toggle_breakpoint()<CR>", opts)
 | 
			
		||||
kmap("n", "<F9>", "<cmd>lua require'dap'.continue()<CR>", opts)
 | 
			
		||||
kmap("n", "<F8>", "<cmd>lua require'dap'.step_over()<CR>", opts)
 | 
			
		||||
kmap("n", "<F7>", "<cmd>lua require'dap'.step_into()<CR>", opts)
 | 
			
		||||
kmap("n", "<F2>", "<cmd>lua require'dapui'.toggle()<CR>", opts)
 | 
			
		||||
end, { noremap = true, silent = true, desc = "List workspace folders" })
 | 
			
		||||
kmap("n", "<leader>D", vim.lsp.buf.type_definition, { noremap = true, silent = true, desc = "Type definition" })
 | 
			
		||||
kmap("n", "<leader>rn", vim.lsp.buf.rename, { noremap = true, silent = true, desc = "Rename symbol" })
 | 
			
		||||
kmap("n", "<leader>ca", vim.lsp.buf.code_action, { noremap = true, silent = true, desc = "Code actions" })
 | 
			
		||||
kmap("n", "gr", vim.lsp.buf.references, { noremap = true, silent = true, desc = "Find references" })
 | 
			
		||||
 | 
			
		||||
-- Отладка (DAP) --
 | 
			
		||||
kmap("n", "<F9>", "<cmd>lua require'dapui'.toggle()<CR>", { noremap = true, silent = true, desc = "Toggle debug UI" })
 | 
			
		||||
kmap("n", "<F5>", function()
 | 
			
		||||
	require("dap").continue()
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<F10>", function()
 | 
			
		||||
	require("dap").step_over()
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<F11>", function()
 | 
			
		||||
	require("dap").step_into()
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<F12>", function()
 | 
			
		||||
	require("dap").step_out()
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<Leader>b", function()
 | 
			
		||||
	require("dap").toggle_breakpoint()
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<Leader>B", function()
 | 
			
		||||
	require("dap").set_breakpoint()
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<Leader>lp", function()
 | 
			
		||||
	require("dap").set_breakpoint(nil, nil, vim.fn.input("Log point message: "))
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<Leader>dr", function()
 | 
			
		||||
	require("dap").repl.open()
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<Leader>dl", function()
 | 
			
		||||
	require("dap").run_last()
 | 
			
		||||
end)
 | 
			
		||||
kmap({ "n", "v" }, "<Leader>dh", function()
 | 
			
		||||
	require("dap.ui.widgets").hover()
 | 
			
		||||
end)
 | 
			
		||||
kmap({ "n", "v" }, "<Leader>dp", function()
 | 
			
		||||
	require("dap.ui.widgets").preview()
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<Leader>df", function()
 | 
			
		||||
	local widgets = require("dap.ui.widgets")
 | 
			
		||||
	widgets.centered_float(widgets.frames)
 | 
			
		||||
end)
 | 
			
		||||
kmap("n", "<Leader>ds", function()
 | 
			
		||||
	local widgets = require("dap.ui.widgets")
 | 
			
		||||
	widgets.centered_float(widgets.scopes)
 | 
			
		||||
end)
 | 
			
		||||
 | 
			
		||||
-- Кастомная функция для NvimTree --
 | 
			
		||||
local function change_root_to_global_cwd()
 | 
			
		||||
	local api = require("nvim-tree.api")
 | 
			
		||||
	local global_cwd = vim.fn.getcwd(-1, -1)
 | 
			
		||||
	api.tree.change_root(global_cwd)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
kmap("n", "<C-c>", change_root_to_global_cwd, opts)
 | 
			
		||||
kmap("n", "<C-c>", change_root_to_global_cwd, { noremap = true, silent = true, desc = "Change tree root to CWD" })
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,10 +1,10 @@
 | 
			
		|||
require('telescope').setup{
 | 
			
		||||
require("telescope").setup({
 | 
			
		||||
	pickers = {
 | 
			
		||||
		buffers = {
 | 
			
		||||
			initial_mode = 'normal'
 | 
			
		||||
		}
 | 
			
		||||
			initial_mode = "normal",
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	defaults = {
 | 
			
		||||
		file_ignore_patterns = {"vendor", "node_modules"}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
		file_ignore_patterns = { "vendor", "node_modules" },
 | 
			
		||||
	},
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue