* chore(defaults.lua): add new options for vim

* feat(keymaps.lua): add new keymaps for various actions
* feat(treesitter.lua): add treesitter configuration for terraform language

* chore(init.lua): comment out unused keymap for signature help
* feat(plugins): add undotree plugin
* feat(plugins): add lsp_signature plugin and setup configuration
This commit is contained in:
PeteChu 2023-04-01 14:03:26 +07:00
parent 049d71cf0f
commit d20aea7ca4
6 changed files with 55 additions and 3 deletions

View File

@ -1,4 +1,10 @@
vim.opt.relativenumber = true vim.opt.relativenumber = true
vim.opt.expandtab = true vim.opt.expandtab = true
vim.opt.smarttab = true vim.opt.smarttab = true
vim.opt.incsearch = true
vim.opt.scrolloff = 8
vim.opt.colorcolumn = "80"

View File

@ -22,4 +22,38 @@ keymap("n", "<C-k>", "<C-w>k", opts)
keymap("n", "<C-l>", "<C-w>l", opts) keymap("n", "<C-l>", "<C-w>l", opts)
-- Nvimtree -- Nvimtree
keymap('n', '<leader>n', ":NvimTreeToggle<cr>", {silent = true, noremap = true}) keymap('n', '<leader>n', ":NvimTreeToggle<cr>", {silent = true, noremap = true, desc = "Toggle [N]vimtree"})
-- UndoTree
keymap('n', '<leader>u', ":UndotreeToggle<cr>", { desc = "Toggle [U]ndo tree" })
-- Move line
keymap('v', 'J', ":m '>+1<CR>gv=gv", {noremap = true})
keymap('v', 'K', ":m '<-2<CR>gv=gv", {noremap = true})
-- Search cursor in the middle
keymap('n', 'n', "nzzzv")
keymap('n', 'N', "Nzzzv")
-- replace without copy current selected
keymap('x', '<leader>p', "\"_dp")
-- yank to system clipboard
keymap('n', '<leader>y', "\"+y", { desc = "[Y]ank to clipboard" })
keymap('v', '<leader>y', "\"+y", { desc = "[Y]ank to clipboard" })
keymap('n', '<leader>Y', "\"+Y", { desc = "[Y]ank to clipboard" })
-- Quickfix
keymap('n', "<C-k>", "<cmd>cnext<CR>zz")
keymap('n', "<C-j>", "<cmd>cprev<CR>zz")
keymap('n', "<leader>k", "<cmd>lnext<CR>zz")
keymap('n', "<leader>j", "<cmd>lprev<CR>zz")
-- replace selected word in the file
keymap("n", "<leader>R", [[:%s/\<<C-r><C-w>\>/<C-r><C-w>/gI<Left><Left><Left>]], { desc = "[R]eplace words in the file" })
-- Make file executable
keymap("n", "<leader>x", "<cmd>!chmod +x %<CR>", { silent = true, desc = "Make [X]ecutable file" })
-- Do nothing
keymap("n", "Q", "<nop>")

View File

@ -0,0 +1,5 @@
require('nvim-treesitter.configs').setup {
-- Add languages to be installed here that you want installed for treesitter
ensure_installed = {'terraform'},
auto_install = true
}

View File

@ -389,7 +389,7 @@ local on_attach = function(_, bufnr)
-- See `:help K` for why this keymap -- See `:help K` for why this keymap
nmap('K', vim.lsp.buf.hover, 'Hover Documentation') nmap('K', vim.lsp.buf.hover, 'Hover Documentation')
nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation') -- nmap('<C-k>', vim.lsp.buf.signature_help, 'Signature Documentation')
-- Lesser used LSP functionality -- Lesser used LSP functionality
nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration') nmap('gD', vim.lsp.buf.declaration, '[G]oto [D]eclaration')

View File

@ -4,4 +4,5 @@
-- See the kickstart.nvim README for more information -- See the kickstart.nvim README for more information
return { return {
'fatih/vim-go', 'fatih/vim-go',
'mbbill/undotree'
} }

View File

@ -0,0 +1,6 @@
return {
'ray-x/lsp_signature.nvim',
config = function()
require('lsp_signature').setup {}
end
}