Files
L-nvim-conf/init.lua
2025-11-09 23:07:31 +00:00

81 lines
2.7 KiB
Lua

-- Basic
vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.cursorline = true
vim.opt.tabstop = 8 -- Always 8 (see :h tabstop)
vim.opt.softtabstop = 4 -- What you expecting
vim.opt.shiftwidth = 4 -- What you expecting
vim.cmd("set rnu")
-- Search
vim.opt.ignorecase = true
vim.opt.incsearch = true
vim.keymap.set("n", "<leader>s", "/{pattern}[/]<CR>", {desc = "search"})
-- Visual
vim.opt.signcolumn = "yes"
-- File
vim.opt.undofile = true
vim.opt.undodir = vim.fn.expand("~/.vim/undodir")
vim.opt.autoread = true
-- Behaviour
vim.opt.backspace = "indent,eol,start"
vim.opt.iskeyword:append("-")
vim.opt.clipboard:append("unnamedplus")
vim.opt.encoding="UTF-8"
-- Keys
-- Set leader
vim.g.mapleader = " "
vim.g.maplocalleader = " "
-- Quick switch buffers
vim.keymap.set("n", "<Tab>", ":bnext<CR>", {silent=true, desc = "Switch to next buffer"})
vim.keymap.set("n", "<S-Tab>", ":bprev<CR>", {silent=true, desc = "Switch to previous buffer"})
-- Close unmodified buffer
vim.keymap.set("n", "<leader>q", ":bd<CR>", { desc = "Close an unmodified buffer"})
-- Centered moving
vim.keymap.set("n", "n", "nzzzv", { desc = "Next search result (centered)"})
vim.keymap.set("n", "N", "Nzzzv", { desc = "Next 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)"})
-- Move lines up and down
vim.keymap.set("n", "<A-j>", ":m .+1<CR>==", {desc = "Move line down"})
vim.keymap.set("n", "<A-k>", ":m .-2<CR>==", {desc = "Move line up"})
vim.keymap.set("v", "<A-j>", ":m '>+1<CR>gv=gv", {desc = "Move lines down"})
vim.keymap.set("v", "<A-k>", ":m '<-2<CR>gv=gv", {desc = "Move lines up"})
-- Indenting
vim.keymap.set("v", "<", "<gv", {desc = "Indent left and reselect"})
vim.keymap.set("v", ">", ">gv", {desc = "Indent right and reselect"})
-- Terminal
vim.keymap.set("t", "<C-c>", [[<C-\><C-n>]], {silent = true, noremap = true})
vim.keymap.set("t", "<C-h>", [[ <C-c><C-w>h ]], {silent = true, noremap=true})
vim.keymap.set("t", "<C-j>", [[ <C-c><C-w>j ]], {silent = true, noremap=true})
vim.keymap.set("t", "<C-k>", [[ <C-c><C-w>k ]], {silent = true, noremap=true})
vim.keymap.set("t", "<C-l>", [[ <C-c><C-w>l ]], {silent = true, noremap=true})
vim.keymap.set("t", "<C-w>", [[ <C-c><C-w>w ]], {silent = true, noremap=true})
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git",
"clone",
"--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable", -- latest stable release
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup("plugins")