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')