Files
dotfiles/nvim/.config/nvim/init.lua
2025-09-22 20:54:32 -04:00

52 lines
1.6 KiB
Lua

vim.opt.number = true
vim.opt.relativenumber = true
vim.opt.swapfile = false
vim.opt.wrap = false
vim.opt.winborder = "rounded"
vim.opt.splitright = true
vim.opt.splitbelow = true
vim.opt.wildoptions = {}
vim.g.mapleader = " "
vim.keymap.set("n", "<Esc>", ":nohlsearch<CR>")
vim.keymap.set("n", "<leader>f", vim.lsp.buf.format)
vim.keymap.set("n", "<leader>r>", ":make<CR>")
vim.keymap.set("n", "<leader>o", ":Pick files<CR>")
vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
vim.keymap.set("v", "K", ":m '<-2<CR>gv=gv")
for _, k in ipairs({ "h", "j", "k", "l" }) do
vim.keymap.set({ "n", "i", "v" }, "<C-" .. k .. ">", "<C-w><C-" .. k .. ">")
end
vim.keymap.set("n", "<leader>en", ":edit $XDG_CONFIG_HOME/nvim/init.lua<CR>")
vim.keymap.set("n", "<leader>ez", ":edit $ZSHRC<CR>")
vim.keymap.set("n", "<leader>ed", ":edit $DO<CR>")
vim.keymap.set("n", "<leader><leader>", function()
local alt = vim.fn.expand("%:r") .. (vim.bo.filetype == "c" and ".h" or ".c")
vim.cmd("edit " .. alt)
end)
vim.api.nvim_create_autocmd({ "BufRead", "BufNewFile" }, {
pattern = "*",
callback = function()
local ext = vim.fn.expand("%:e")
local firstline = vim.fn.getline(1)
if ext == "" and not firstline:match("^#!") then
vim.bo.filetype = "noext"
end
end,
})
vim.pack.add {
{ src = "https://github.com/echasnovski/mini.pick" },
{ src = "https://github.com/mason-org/mason.nvim" },
{ src = "https://github.com/neovim/nvim-lspconfig" },
}
require("mini.pick").setup()
require("mason").setup()
vim.lsp.enable { "lua_ls", "clangd", "beautysh" }
vim.diagnostic.config { virtual_text = true, underline = true, signs = false }