Updated config

This commit is contained in:
Eduard Urbach 2025-06-11 17:38:25 +02:00
parent 7085c0afa9
commit 7547ef0ff1
Signed by: akyoto
GPG key ID: 49226B848C78F6C8
11 changed files with 127 additions and 6 deletions

View file

@ -1,3 +1,73 @@
-- ToggleComment
vim.api.nvim_create_user_command("ToggleComment", function()
local comments = {
bash = "#",
c = "//",
cpp = "//",
editorconfig = "#",
fish = "#",
gdscript = "#",
gdshader = "//",
gitignore = "#",
glsl = "//",
go = "//",
hyprlang = "#",
javascript = "//",
jsonc = "//",
lua = "--",
rust = "//",
sh = "#",
tmux = "#",
toml = "#",
typescript = "//",
yaml = "#",
zig = "//",
}
local comment = comments[vim.bo.filetype]
if comment == nil then
return
end
local is_visual = vim.fn.mode():match("[vV]")
local start_line
local end_line
if is_visual then
start_line = vim.fn.line("v")
end_line = vim.fn.line(".")
else
start_line = vim.fn.line(".")
end_line = start_line
end
if start_line == 0 or end_line == 0 then
vim.notify("No visual selection found. Please make a selection first.", vim.log.levels.WARN)
return
end
if start_line > end_line then
start_line, end_line = end_line, start_line
end
local lines = vim.api.nvim_buf_get_lines(0, start_line - 1, end_line, false)
for i, line in ipairs(lines) do
local indent, rest = line:match("^(%s*)(.*)")
if vim.startswith(rest, comment) then
rest = rest:sub(#comment + 1):gsub("^%s*", "")
else
rest = comment .. " " .. rest
end
lines[i] = indent .. rest
end
vim.api.nvim_buf_set_lines(0, start_line - 1, end_line, false, lines)
end, {})
-- ToggleWord
vim.api.nvim_create_user_command("ToggleWord", function()
local inverse = {

View file

@ -17,9 +17,15 @@ map({"n", "v"}, "Q", "<cmd>qa!<cr>", "Force quit")
-- Clear search with Esc
map({"n", "i"}, "<esc>", "<cmd>noh<cr><esc>", "Clear search")
-- Change with c changes the entire word
map("n", "c", "ciw", "Change word")
-- Ctrl S to save the file from any mode
map({"n", "i", "s", "v"}, "<C-s>", "<cmd>w<cr><esc>", "Save file")
-- Ctrl Space for auto complete
map("i", "<C-Space>", "<C-x><C-o>", "Auto complete")
-- Grab the line and move it up/down
map("n", "<C-j>", "<cmd>set paste<cr>m`O<esc>``<cmd>set nopaste<cr>", "Add empty line above")
map("n", "<C-k>", "m`<cmd>-g/\\m^\\s*$/d<cr>``<cmd>noh<cr>", "Delete empty line above")
@ -29,6 +35,8 @@ map("n", "<A-j>", "<cmd>set paste<cr>m`o<esc>``<cmd>set nopaste<cr>", "Add empty
map("n", "<A-k>", "m`<cmd>+g/\\m^\\s*$/d<cr>``<cmd>noh<cr>", "Delete empty line below")
-- Horizontal movement
map({"n", "v"}, "<C-h>", "b", "Back one word")
map({"n", "v"}, "<C-l>", "w", "Forward one word")
map({"n", "v"}, "H", "^", "Beginning of line")
map({"n", "v"}, "L", "<end>", "End of line")
@ -42,6 +50,9 @@ map("n", "<S-Tab>", "V<gv<esc>")
map("v", "<Tab>", ">gv")
map("v", "<S-Tab>", "<gv")
-- Toggle comment
map({"n", "v"}, "<C-/>", "<cmd>ToggleComment<cr>", "Toggle comment")
-- Toggle word
map("n", "<Bslash>", "<cmd>ToggleWord<cr>", "Toggle word")

View file

@ -7,5 +7,6 @@ vim.diagnostic.config({
vim.lsp.enable({
"clangd",
"gopls",
"lua-language-server",
"rust-analyzer",
})