plugin and keybind updates

This commit is contained in:
azpsen 2024-01-31 12:00:36 -06:00
parent b0eebbe326
commit 72a286eecb
2 changed files with 84 additions and 11 deletions

View File

@ -1,3 +1,7 @@
--------------------------------------------------
-- BASIC OPTIONS --
--------------------------------------------------
vim.g.loaded_netrw = 1 vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1 vim.g.loaded_netrwPlugin = 1
@ -13,8 +17,8 @@ vim.opt.completeopt = noinsert,menuone,noselect
-- enable line under/around cursor -- enable line under/around cursor
vim.opt.cursorline = true vim.opt.cursorline = true
-- don't require writing files when changin buffers -- don't require writing files when changing buffers
vim.opt.hidden = true vim.cmd("set hidden")
-- show find/replace preview in split window -- show find/replace preview in split window
vim.opt.inccommand = split vim.opt.inccommand = split
@ -41,6 +45,10 @@ vim.cmd("set nocompatible")
vim.g.mapleader = " " vim.g.mapleader = " "
vim.keymap.set('n', '<SPACE>', '<Nop>') vim.keymap.set('n', '<SPACE>', '<Nop>')
--------------------------------------------------
-- PLUGINS --
--------------------------------------------------
-- initialize lazy plugin manager -- initialize lazy plugin manager
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then if not vim.loop.fs_stat(lazypath) then
@ -64,11 +72,19 @@ require("lazy").setup({
{ {
"nvim-treesitter/nvim-treesitter", "nvim-treesitter/nvim-treesitter",
build = ":TSUpdate", build = ":TSUpdate",
event = { "BufReadPre", "BufNewFile" },
}, },
-- rainbow delimiters for treesitter -- rainbow delimiters for treesitter
"hiphish/rainbow-delimiters.nvim", "hiphish/rainbow-delimiters.nvim",
-- indent guide lines
{
"lukas-reineke/indent-blankline.nvim",
main = "ibl",
opts = {},
},
-- fast comment/uncomment -- fast comment/uncomment
{ {
"numToStr/Comment.nvim", "numToStr/Comment.nvim",
@ -104,9 +120,9 @@ require("lazy").setup({
}, },
-- auto match bracket/parenthesis/quote pairs -- auto match bracket/parenthesis/quote pairs
"jiangmiao/auto-pairs", "tmsvg/pear-tree",
-- show colors inline -- show css colors inline
"ap/vim-css-color", "ap/vim-css-color",
-- display git add/remove/blame info next to line numbers -- display git add/remove/blame info next to line numbers
@ -129,11 +145,53 @@ require("lazy").setup({
}, },
}) })
--------------------------------------------------
-- PLUGIN OPTIONS --
--------------------------------------------------
-- set theme -- set theme
vim.opt.termguicolors = true vim.opt.termguicolors = true
vim.cmd([[ colorscheme everforest ]]) vim.cmd([[ colorscheme everforest ]])
vim.opt.background = "dark" vim.opt.background = "dark"
-- add auto-closers for mult-character pairs
vim.g.pear_tree_pairs = {
['/*'] = { closer = '*/' },
['<!--'] = { closer = '-->' },
['('] = {closer = ')'},
['['] = {closer = ']'},
['{'] = {closer = '}'},
["'"] = {closer = "'"},
['"'] = {closer = '"'},
}
vim.g.pear_tree_smart_openers = 1
vim.g.pear_tree_smart_closers = 1
vim.g.pear_tree_smart_backspace = 1
-- set rainbow delimiter colors
require("rainbow-delimiters.setup").setup {
highlight = {
'RainbowDelimiterGreen',
'RainbowDelimiterBlue',
'RainbowDelimiterYellow',
'RainbowDelimiterOrange',
'RainbowDelimiterViolet',
'RainbowDelimiterCyan',
'RainbowDelimiterRed',
}
}
-- set indent guide lines to highlight scope
require("ibl").setup()
-- import treesitter config from ~/.config/nvim/lua/treesitter.lua
require("treesitter")
--------------------------------------------------
-- KEYBINDS --
--------------------------------------------------
-- open sidebar file tree with <space> e -- open sidebar file tree with <space> e
vim.keymap.set('n', '<Leader>e', '<cmd>NvimTreeToggle<cr>') vim.keymap.set('n', '<Leader>e', '<cmd>NvimTreeToggle<cr>')
@ -145,8 +203,11 @@ vim.keymap.set('n', '<Leader>bn', '<cmd>bnext<cr>')
vim.keymap.set('n', '<Leader>bb', '<cmd>bprevious<cr>') vim.keymap.set('n', '<Leader>bb', '<cmd>bprevious<cr>')
vim.keymap.set('n', '<Leader>bc', '<cmd>bd<cr>') vim.keymap.set('n', '<Leader>bc', '<cmd>bd<cr>')
-- vim.api.nvim_create_user_command('w!!', 'SudaWrite', {}) -- bind write-as-sudo to :w!!
vim.cmd("ca w!! :SudaWrite") vim.cmd("ca w!! :SudaWrite")
-- import treesitter config from ~/.config/nvim/lua/treesitter.lua -- map ctrl-backspace to delete previous word
require("treesitter") vim.keymap.set('i', '<C-BS>', '<C-W>')
-- map ctrl-delete to delete next word
vim.keymap.set('i', '<C-Del>', '<C-o>dw')

View File

@ -7,11 +7,22 @@ end
-- configure treesitter -- configure treesitter
treesitter.setup({ treesitter.setup({
-- enable syntax highlighting -- enable syntax highlighting
highlight = { highlight = { enable = true },
enable = true,
},
-- enable indentation -- enable indentation
indent = { enable = true }, indent = { enable = true },
-- enable incremental selection (<C-space>)
incremental_selection = {
enable = true,
keymaps = {
init_selection = "<C-space>",
node_incremental = "<C-space>",
scope_incremental = false,
node_decremental = "<bs>",
},
},
-- ensure these language parsers are installed -- ensure these language parsers are installed
ensure_installed = { ensure_installed = {
"json", "json",
@ -33,6 +44,7 @@ treesitter.setup({
"regex", "regex",
"sxhkdrc", "sxhkdrc",
"udev", "udev",
"requirements",
}, },
-- auto install above language parsers -- auto install above language parsers
auto_install = true, auto_install = true,