neovim/lua/basics/keybinding.lua

52 lines
2.2 KiB
Lua

vim.g.mapleader = " "
vim.g.maplocalleader = " "
local map = vim.api.nvim_set_keymap
local noreopt = { noremap = true, silent = true }
-- 快所退出
map("n", "q", ":wq<CR>", noreopt)
map("n", "qn", ":q!<CR>", noreopt)
map("i", "jk", "<ESC>", noreopt)
-- git 管理
map("n", "<leader>lg", ":LazyGit<CR>", noreopt)
-- 开关文件树
map("n", "<leader>t", ":NvimTreeToggle<CR>", noreopt)
-- 文件页切换
map("n", "<leader>ll", ":BufferLineCyclePrev<CR>", noreopt)
map("n", "<leader>rr", ":BufferLineCycleNext<CR>", noreopt)
-- 模糊搜索
map("n", "<leader>ff", "<Cmd>Telescope find_files<CR>", noreopt)
map("n", "<leader>fg", "<Cmd>Telescope live_grep<CR>", noreopt)
-- 重命名
vim.keymap.set({ "i", "n", "v" }, "<F6>", '<cmd>lua require("renamer").rename()<cr>')
-- 终端管理
map("n", "<leader>te", "<Cmd>ToggleTerm<CR>", noreopt)
function _G.set_terminal_keymaps()
local opts = { buffer = 0 }
vim.keymap.set("t", "<esc>", [[<C-\><C-n>]], opts)
vim.keymap.set("t", "jk", [[<C-\><C-n>]], opts)
vim.keymap.set("t", "<C-h>", [[<Cmd>wincmd h<CR>]], opts)
vim.keymap.set("t", "<C-j>", [[<Cmd>wincmd j<CR>]], opts)
vim.keymap.set("t", "<C-k>", [[<Cmd>wincmd k<CR>]], opts)
vim.keymap.set("t", "<C-l>", [[<Cmd>wincmd l<CR>]], opts)
end
function _G.set_terminal_keymaps_insert()
local opts = { buffer = 0 }
vim.keymap.set("n", "<C-h>", [[<Cmd>wincmd h<CR>]], opts)
vim.keymap.set("n", "<C-j>", [[<Cmd>wincmd j<CR>]], opts)
vim.keymap.set("n", "<C-k>", [[<Cmd>wincmd k<CR>]], opts)
vim.keymap.set("n", "<C-l>", [[<Cmd>wincmd l<CR>]], opts)
end
vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()")
vim.cmd("lua set_terminal_keymaps_insert()")
-- 错误列表UI
map("n", "<leader>xx", "<cmd>TroubleToggle<cr>", { silent = true, noremap = true })
map("n", "<leader>xw", "<cmd>TroubleToggle workspace_diagnostics<cr>", { silent = true, noremap = true })
map("n", "<leader>xd", "<cmd>TroubleToggle document_diagnostics<cr>", { silent = true, noremap = true })
map("n", "<leader>xl", "<cmd>TroubleToggle loclist<cr>", { silent = true, noremap = true })
map("n", "<leader>xq", "<cmd>TroubleToggle quickfix<cr>", { silent = true, noremap = true })
map("n", "gR", "<cmd>TroubleToggle lsp_references<cr>", { silent = true, noremap = true })