.
This commit is contained in:
commit
73ff9ee8ee
31 changed files with 4906 additions and 0 deletions
147
home/nvim/settings.lua
Normal file
147
home/nvim/settings.lua
Normal file
|
|
@ -0,0 +1,147 @@
|
|||
vim.opt.number = true
|
||||
vim.opt.relativenumber = true
|
||||
vim.opt.cursorline = true
|
||||
vim.opt.wrap = false
|
||||
vim.opt.scrolloff = 10
|
||||
vim.opt.sidescrolloff = 8
|
||||
|
||||
vim.opt.tabstop = 4
|
||||
vim.opt.shiftwidth = 4
|
||||
vim.opt.softtabstop = 4
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.smartindent = true
|
||||
vim.opt.autoindent = true
|
||||
|
||||
vim.opt.ignorecase = true
|
||||
vim.opt.smartcase = true
|
||||
vim.opt.hlsearch = false
|
||||
vim.opt.incsearch = true
|
||||
|
||||
vim.opt.termguicolors = true
|
||||
vim.opt.signcolumn = "yes"
|
||||
vim.opt.colorcolumn = "120"
|
||||
vim.opt.showmatch = false
|
||||
--- vim.opt.matchtime = 2
|
||||
vim.opt.conceallevel = 0
|
||||
vim.opt.concealcursor = ""
|
||||
vim.opt.synmaxcol = 1000
|
||||
vim.opt.isfname:append("@-@")
|
||||
|
||||
vim.opt.backup = false
|
||||
vim.opt.writebackup = false
|
||||
vim.opt.swapfile = false
|
||||
vim.opt.undofile = true
|
||||
vim.opt.undodir = vim.fn.expand("~/.cache/vim/undodir")
|
||||
vim.opt.updatetime = 100
|
||||
vim.opt.timeoutlen = 500
|
||||
vim.opt.ttimeoutlen = 0
|
||||
vim.opt.autoread = true
|
||||
vim.opt.autowrite = false
|
||||
|
||||
vim.opt.hidden = true
|
||||
--- vim.opt.errorbells = false
|
||||
vim.opt.backspace = "indent,eol,start"
|
||||
vim.opt.autochdir = false
|
||||
vim.opt.path:append("**")
|
||||
vim.opt.selection = "exclusive"
|
||||
vim.opt.mouse = "a"
|
||||
vim.opt.modifiable = true
|
||||
vim.opt.encoding = "UTF-8"
|
||||
|
||||
-- Split behavior
|
||||
vim.opt.splitbelow = true
|
||||
vim.opt.splitright = true
|
||||
|
||||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = vim.api.nvim_replace_termcodes("<BS>", false, false, true)
|
||||
|
||||
vim.o.exrc = true
|
||||
vim.o.showtabline = 2
|
||||
|
||||
vim.cmd("set title")
|
||||
vim.cmd("set ic")
|
||||
|
||||
-- Delete without yanking
|
||||
vim.keymap.set({ "n", "v" }, "<localleader>d", '"_d', { desc = "Delete without yanking" })
|
||||
vim.keymap.set({ "n", "v" }, "<C-c>", '"+y', { desc = "Copy to clipboard" })
|
||||
vim.keymap.set("x", "<localleader>p", '"_dP', { desc = "Replace without yanking" })
|
||||
|
||||
-- Wayland clipboard mappings
|
||||
vim.keymap.set({ "n", "v" }, "<leader>y", '"+y', { desc = "Yank to system clipboard" })
|
||||
vim.keymap.set("n", "<leader>Y", '"+Y', { desc = "Yank line to system clipboard" })
|
||||
vim.keymap.set({ "n", "v" }, "<leader>p", '"+p', { desc = "Paste from system clipboard" })
|
||||
vim.keymap.set({ "n", "v" }, "<leader>P", '"+P', { desc = "Paste from system clipboard before cursor" })
|
||||
|
||||
-- Better J behavior
|
||||
vim.keymap.set("n", "J", "mzJ`z", { desc = "Join lines and keep cursor position" })
|
||||
|
||||
--- center when jumping
|
||||
vim.keymap.set("n", "n", "nzzzv", { desc = "Next search result (centered)" })
|
||||
vim.keymap.set("n", "N", "Nzzzv", { desc = "Previous search result (centered)" })
|
||||
vim.keymap.set("n", "<C-d>", "<C-d>zz", { desc = "Half page down (centered)" })
|
||||
vim.keymap.set("n", "<C-u>", "<C-u>zz", { desc = "Half page up (centered)" })
|
||||
|
||||
--- window navigation
|
||||
vim.keymap.set("n", "<C-w>Left", "<C-w>h", { desc = "Move to left window" })
|
||||
vim.keymap.set("n", "<C-w>Right", "<C-w>l", { desc = "Move to right window" })
|
||||
vim.keymap.set("n", "<C-w>Top", "<C-w>k", { desc = "Move to top window" })
|
||||
vim.keymap.set("n", "<C-w>Down", "<C-w>j", { desc = "Move to bottom window" })
|
||||
|
||||
vim.keymap.set("t", "<S-Esc>", "<C-\\><C-n>", { desc = "Exit terminal mode" })
|
||||
|
||||
vim.keymap.set("n", "<leader>tn", "<cmd>$tabnew<cr>", { desc = "create tab" })
|
||||
vim.keymap.set("n", "<leader>n", function()
|
||||
vim.cmd("tabnext 1")
|
||||
end, { desc = "Go to tab 1" })
|
||||
vim.keymap.set("n", "<leader>e", function()
|
||||
vim.cmd("tabnext 2")
|
||||
end, { desc = "Go to tab 2" })
|
||||
vim.keymap.set("n", "<leader>i", function()
|
||||
vim.cmd("tabnext 3")
|
||||
end, { desc = "Go to tab 3" })
|
||||
vim.keymap.set("n", "<leader>a", function()
|
||||
vim.cmd("tabnext 4")
|
||||
end, { desc = "Go to tab 4" })
|
||||
vim.keymap.set({ "n", "t" }, "<C-H>", function()
|
||||
vim.cmd("tabnext #")
|
||||
end, { desc = "Go to previous tab" })
|
||||
vim.keymap.set({ "n", "t" }, "<C-Space>", "<C-w>p", { desc = "Go to previous pane" })
|
||||
|
||||
vim.keymap.set("n", "<localleader>v", "<cmd>vsplit<cr>", { desc = "split (vertical line)" })
|
||||
vim.keymap.set("n", "<leader>h", "<cmd>split<cr>", { desc = "split (horizontal line)" })
|
||||
|
||||
vim.keymap.set("n", "<localleader><localleader>", "<cmd>w<cr>", { desc = "save buffer" })
|
||||
|
||||
vim.diagnostic.config({
|
||||
virtual_text = false,
|
||||
virtual_lines = true,
|
||||
signs = true,
|
||||
underline = true,
|
||||
update_in_insert = false,
|
||||
severity_sort = true,
|
||||
})
|
||||
|
||||
-- Highlight yanked text
|
||||
vim.api.nvim_create_autocmd("TextYankPost", {
|
||||
group = augroup,
|
||||
callback = function()
|
||||
vim.highlight.on_yank()
|
||||
end,
|
||||
})
|
||||
|
||||
--- return to last edit position when opening files
|
||||
vim.api.nvim_create_autocmd("BufReadPost", {
|
||||
group = augroup,
|
||||
callback = function()
|
||||
local mark = vim.api.nvim_buf_get_mark(0, '"')
|
||||
local lcount = vim.api.nvim_buf_line_count(0)
|
||||
if mark[1] > 0 and mark[1] <= lcount then
|
||||
pcall(vim.api.nvim_win_set_cursor, 0, mark)
|
||||
end
|
||||
end,
|
||||
})
|
||||
|
||||
--- command line completion
|
||||
vim.opt.wildmenu = true
|
||||
vim.opt.wildmode = "longest:full,full"
|
||||
vim.opt.wildignore:append({ "*.o", "*.obj", "*.pyc", "*.class", "*.jar", "*.lock" })
|
||||
Loading…
Add table
Add a link
Reference in a new issue