1
0

Added some simple key mappings

Simple buffer-based "auto" complete
Auto-trim trailing whitespace on write
This commit is contained in:
2025-09-24 17:05:32 +01:00
parent 42b161fe21
commit 3a2db931e0

View File

@@ -1,3 +1,6 @@
local MAP = vim.keymap.set
local AUTOCMD = vim.api.nvim_create_autocmd
vim.cmd("colorscheme scheme") vim.cmd("colorscheme scheme")
vim.cmd("filetype indent on") vim.cmd("filetype indent on")
@@ -52,4 +55,46 @@ vim.opt.formatoptions:append("/")
vim.opt.cinkeys:append("0=break") vim.opt.cinkeys:append("0=break")
vim.opt.listchars:append({ lead = "." }) vim.opt.listchars:append({ lead = "." })
--------------------------------------------------------------------------------
-- Functions
--------------------------------------------------------------------------------
-- Buffers
local function BufferComplete()
local pos = vim.api.nvim_win_get_cursor(0)
local line = vim.fn.getline('.')
local ident = line:sub(1, pos[2]):match("[^ \t]*$")
return #ident ~= 0 and "<C-P>" or "<Tab>"
end
local function TrimBuffer()
local view = vim.fn.winsaveview()
vim.cmd("%s/\\s\\+$//e")
vim.fn.winrestview(view)
end
-- Input mappings
vim.g.mapleader = " "
MAP("n", "<A-j>", "mz:m+<CR>")
MAP("n", "<A-k>", "mz:m-2<CR>")
MAP("n", "<Esc>", ":nohl<CR>")
MAP("n", "<Leader>n", ":cnext<CR>")
MAP("n", "<Leader>N", ":cprev<CR>")
MAP("n", "J", "}")
MAP("v", "J", "}")
MAP("n", "K", "{")
MAP("v", "K", "{")
MAP("n", "<Leader>k", ":Man<CR>")
MAP("i", "<S-Tab>", "<C-o><<")
MAP("i", "<Tab>", BufferComplete, { expr = true })
-- Autocommands
AUTOCMD('BufEnter', { command = "let b:man_default_sects=\"2,3\"", pattern = "*.c" })
AUTOCMD('BufReadPost', { command = "setlocal nornu", pattern = "quickfix" })
AUTOCMD('BufWritePre', { callback = TrimBuffer, pattern = "*" })