local map = function(mode, lhs, rhs, desc) vim.keymap.set(mode, lhs, rhs, { silent = true, noremap = true, desc = desc }) end vim.g.mapleader = "," vim.opt.modelines = 0 vim.opt.spell = false vim.opt.digraph = false vim.opt.updatetime = 100 vim.opt.backupcopy = "yes" vim.opt.title = true if vim.fn.has("wind32") == 1 then map("n", "", "", "Disable Ctrl-Z on win32") end map("n", "", function() vim.cmd.nohlsearch() end, "Clear search highlight") map("t", "-", [[]], "Terminal: exit to normal mode") map("n", "-", function() vim.cmd("split") -- If there's a file, use its dir; else use current working dir local bufname = vim.api.nvim_buf_get_name(0) local dir = (bufname ~= "" and vim.fn.fnamemodify(bufname, ":p:h")) or vim.loop.cwd() vim.cmd.lcd(vim.fn.fnameescape(dir)) vim.cmd("terminal") end, "Open terminal split in file dir") local function set_title() local cwd_tail = vim.fn.fnamemodify(vim.loop.cwd(), ":t") local file_tail = vim.fn.expand("%:t") if file_tail == "" then file_tail = "[No Name]" end vim.opt.titlestring = string.format("%s - %s", cwd_tail, file_tail) end local title_grp = vim.api.nvim_create_augroup("title_string", { clear = true }) vim.api.nvim_create_autocmd({ "BufEnter", "BufWinEnter", "DirChanged" }, { group = title_grp, callback = set_title, }) require('config.lazy') require('config.general') require('config.statusline') require('config.tabline') require('config.gblamepr')