diff --git a/init.lua b/init.lua index 5a1c169..d6e170b 100644 --- a/init.lua +++ b/init.lua @@ -25,6 +25,10 @@ require("plugins.renamer") require("plugins.gitsigns") -- 终端管理 require("plugins.terminal") +-- 错误列表 +require("plugins.trouble") +-- 代码大纲 +require('plugins.aerial') -- LSP管理 require("plugins.mason") require("lsp.init") diff --git a/lua/basics/keybinding.lua b/lua/basics/keybinding.lua index 5e59312..f3bf08c 100644 --- a/lua/basics/keybinding.lua +++ b/lua/basics/keybinding.lua @@ -2,36 +2,50 @@ vim.g.mapleader = " " vim.g.maplocalleader = " " local map = vim.api.nvim_set_keymap -local noreopt = {noremap = true, silent = true } +local noreopt = { noremap = true, silent = true } +-- 快所退出 +map("n", "q", ":wq", noreopt) +map("n", "qn", ":q!", noreopt) +map("i", "jk", "", noreopt) -- git 管理 -map('n', 'lg', ':LazyGit', noreopt) +map("n", "lg", ":LazyGit", noreopt) -- 开关文件树 -map('n', 't', ':NvimTreeToggle', noreopt) +map("n", "t", ":NvimTreeToggle", noreopt) -- 文件页切换 -map('n', 'll', ':BufferLineCyclePrev', noreopt) -map('n', 'rr', ':BufferLineCycleNext', noreopt) +map("n", "ll", ":BufferLineCyclePrev", noreopt) +map("n", "rr", ":BufferLineCycleNext", noreopt) -- 模糊搜索 -map('n', 'ff', 'Telescope find_files', noreopt) -map('n', 'fg', 'Telescope live_grep', noreopt) +map("n", "ff", "Telescope find_files", noreopt) +map("n", "fg", "Telescope live_grep", noreopt) -- 重命名 -vim.keymap.set({'i','n','v'}, '', 'lua require("renamer").rename()') +vim.keymap.set({ "i", "n", "v" }, "", 'lua require("renamer").rename()') -- 终端管理 -map('n', 'te', 'ToggleTerm', noreopt) +map("n", "te", "ToggleTerm", noreopt) function _G.set_terminal_keymaps() - local opts = {buffer = 0} - vim.keymap.set('t', '', [[]], opts) - vim.keymap.set('t', 'jk', [[]], opts) - vim.keymap.set('t', '', [[wincmd h]], opts) - vim.keymap.set('t', '', [[wincmd j]], opts) - vim.keymap.set('t', '', [[wincmd k]], opts) - vim.keymap.set('t', '', [[wincmd l]], opts) + local opts = { buffer = 0 } + vim.keymap.set("t", "", [[]], opts) + vim.keymap.set("t", "jk", [[]], opts) + vim.keymap.set("t", "", [[wincmd h]], opts) + vim.keymap.set("t", "", [[wincmd j]], opts) + vim.keymap.set("t", "", [[wincmd k]], opts) + vim.keymap.set("t", "", [[wincmd l]], opts) end + function _G.set_terminal_keymaps_insert() - vim.keymap.set('n', '', [[wincmd h]], opts) - vim.keymap.set('n', '', [[wincmd j]], opts) - vim.keymap.set('n', '', [[wincmd k]], opts) - vim.keymap.set('n', '', [[wincmd l]], opts) + local opts = { buffer = 0 } + vim.keymap.set("n", "", [[wincmd h]], opts) + vim.keymap.set("n", "", [[wincmd j]], opts) + vim.keymap.set("n", "", [[wincmd k]], opts) + vim.keymap.set("n", "", [[wincmd l]], opts) end -vim.cmd('autocmd! TermOpen term://* lua set_terminal_keymaps()') -vim.cmd('lua set_terminal_keymaps_insert()') + +vim.cmd("autocmd! TermOpen term://* lua set_terminal_keymaps()") +vim.cmd("lua set_terminal_keymaps_insert()") +-- 错误列表UI +map("n", "xx", "TroubleToggle", { silent = true, noremap = true }) +map("n", "xw", "TroubleToggle workspace_diagnostics", { silent = true, noremap = true }) +map("n", "xd", "TroubleToggle document_diagnostics", { silent = true, noremap = true }) +map("n", "xl", "TroubleToggle loclist", { silent = true, noremap = true }) +map("n", "xq", "TroubleToggle quickfix", { silent = true, noremap = true }) +map("n", "gR", "TroubleToggle lsp_references", { silent = true, noremap = true }) diff --git a/lua/plugins/aerial.lua b/lua/plugins/aerial.lua new file mode 100644 index 0000000..b8e0c36 --- /dev/null +++ b/lua/plugins/aerial.lua @@ -0,0 +1,11 @@ +require('aerial').setup({ + -- optionally use on_attach to set keymaps when aerial has attached to a buffer + on_attach = function(bufnr) + -- Jump forwards/backwards with '{' and '}' + vim.keymap.set('n', '{', 'AerialPrev', {buffer = bufnr}) + vim.keymap.set('n', '}', 'AerialNext', {buffer = bufnr}) + end +}) + +-- You probably also want to set a keymap to toggle aerial +vim.keymap.set('n', 'a', 'AerialToggle!') diff --git a/lua/plugins/setup.lua b/lua/plugins/setup.lua index 1f3fb81..e8a3b94 100644 --- a/lua/plugins/setup.lua +++ b/lua/plugins/setup.lua @@ -101,5 +101,12 @@ return require("packer").startup(function(use) "hrsh7th/cmp-vsnip", "hrsh7th/vim-vsnip", }) + -- 代码大纲 + use({ "stevearc/aerial.nvim" }) + -- 错误列表 + use({ + "folke/trouble.nvim", + requires = "nvim-tree/nvim-web-devicons", + }) vim.opt.completeopt = { "menu", "menuone", "noselect" } end) diff --git a/lua/plugins/trouble.lua b/lua/plugins/trouble.lua new file mode 100644 index 0000000..38ef1e9 --- /dev/null +++ b/lua/plugins/trouble.lua @@ -0,0 +1 @@ +require("trouble").setup()