From 4e394d413805dd49347021b578a71ece016a90c2 Mon Sep 17 00:00:00 2001 From: Young Xu Date: Sat, 4 Feb 2023 12:10:29 +0800 Subject: [PATCH] coc and keymap --- coc-settings.json | 10 ++++++++++ lua/basic.lua | 5 +++++ lua/keybindings.lua | 29 +++++++++++++++++++++++++++-- lua/plugins-config.lua | 1 + lua/plugins.lua | 11 +++++++---- 5 files changed, 50 insertions(+), 6 deletions(-) create mode 100644 coc-settings.json diff --git a/coc-settings.json b/coc-settings.json new file mode 100644 index 0000000..7bba792 --- /dev/null +++ b/coc-settings.json @@ -0,0 +1,10 @@ +{ + "languageserver": { + "go": { + "command": "gopls", + "rootPatterns": ["go.mod"], + "trace.server": "verbose", + "filetypes": ["go"] + } + } +} diff --git a/lua/basic.lua b/lua/basic.lua index 6645eea..0b738c8 100644 --- a/lua/basic.lua +++ b/lua/basic.lua @@ -68,3 +68,8 @@ vim.o.showtabline = 2 vim.o.showmode = false -- 配置剪切板 vim.opt.clipboard = "unnamedplus" +-- Some servers have issues with backup files, see #649 +vim.opt.backup = false +vim.opt.writebackup = false + + diff --git a/lua/keybindings.lua b/lua/keybindings.lua index 01662f4..7582567 100644 --- a/lua/keybindings.lua +++ b/lua/keybindings.lua @@ -2,9 +2,34 @@ vim.g.mapleader = " " vim.g.maplocalleader = " " local map = vim.api.nvim_set_keymap +local keyset = vim.keymap.set +local coc_opt = {noremap = true, silent = true, expr = true, replace_keycodes = false} local opt = {noremap = true, silent = true} +-- Autocomplete +function _G.check_back_space() + local col = vim.fn.col('.') - 1 + return col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') ~= nil +end + -- 开启目录树 -map('n', 'o', ':NvimTreeOpen', opt) +map('n', 'to', ':NvimTreeOpen', opt) -- 关闭目录树 -map('n', 'c', ':NvimTreeClose', opt) +map('n', 'tc', ':NvimTreeClose', opt) +-- 开启coc补全 +keyset("i", "", 'coc#pum#visible() ? coc#pum#next(1) : v:lua.check_back_space() ? "" : coc#refresh()', coc_opt) +keyset("i", "", [[coc#pum#visible() ? coc#pum#prev(1) : "\"]], coc_opt) + +-- 搜索 +local builtin = require('telescope.builtin') +vim.keymap.set('n', 'ff', builtin.find_files, {}) +vim.keymap.set('n', 'fg', builtin.live_grep, {}) +vim.keymap.set('n', 'fb', builtin.buffers, {}) +vim.keymap.set('n', 'fh', builtin.help_tags, {}) + +-- 窗口切换 +map('n', '1', ':BufferLineGoToBuffer 1', opt) +map('n', '2', ':BufferLineGoToBuffer 2', opt) +map('n', '3', ':BufferLineGoToBuffer 3', opt) +map('n', '4', ':BufferLineGoToBuffer 4', opt) +map('n', '5', ':BufferLineGoToBuffer 5', opt) diff --git a/lua/plugins-config.lua b/lua/plugins-config.lua index da68b13..65a5977 100644 --- a/lua/plugins-config.lua +++ b/lua/plugins-config.lua @@ -7,6 +7,7 @@ require('impatient') require("toggleterm").setup() require('gitsigns').setup() require('telescope').setup() +require("nvim-dap-virtual-text").setup() vim.o.background = "dark" -- or "light" for light mode vim.cmd([[colorscheme gruvbox]]) diff --git a/lua/plugins.lua b/lua/plugins.lua index 110f9aa..67cadd3 100644 --- a/lua/plugins.lua +++ b/lua/plugins.lua @@ -27,10 +27,13 @@ return require('packer').startup(function() use {'akinsho/bufferline.nvim', tag = "v3.*", requires = 'nvim-tree/nvim-web-devicons'} -- golang ide use 'ray-x/go.nvim' - use 'ray-x/guihua.lua' -- recommended if need floating window support - use 'neovim/nvim-lspconfig' - use 'nvim-treesitter/nvim-treesitter' - -- 当前工作目录 + use 'ray-x/guihua.lua' -- recommended if need floating window support + use 'neovim/nvim-lspconfig' + use 'nvim-treesitter/nvim-treesitter' + use 'mfussenegger/nvim-dap' + use 'theHamsta/nvim-dap-virtual-text' + use { "rcarriga/nvim-dap-ui", requires = {"mfussenegger/nvim-dap"} } + -- 当前工作目录 use { "ahmedkhalf/project.nvim", config = function()