-- ---------------------------------------------- -- Globals -- ---------------------------------------------- local set = vim.opt local g = vim.g local fn = vim.fn local map = vim.keymap.set local api = vim.api local opt = vim.opt -- Turn on relative numbers set.relativenumber = true -- Turn off line wrapping set.wrap = false -- Disable cmdline from bottom -- set.cmdheight = 0 -- Ignore case while searching except when the search term contains capital letters set.ignorecase = true set.smartcase = true -- Use 4 spaces and properly adjust them for files using TAB, -- except for Haskell vim.api.nvim_create_autocmd("FileType", { pattern = "*", callback = function() local tabsize if string.find(" haskell ", ' ' .. vim.bo.filetype .. ' ') then tabsize = 2 else tabsize = 4 end set.tabstop = tabsize set.shiftwidth = tabsize set.softtabstop = tabsize end, }) set.expandtab = true -- Show LSP signs in the number column set.signcolumn = 'number' -- Turn on spell checking set.spell = true -- Enable mouse support set.mouse = 'n' -- Disable unused plugins g.loaded_perl_provider = 0 g.loaded_node_provider = 0 g.loaded_ruby_provider = 0 g.loaded_python_provider = 0 -- ---------------------------------------------- -- Keymaps -- ---------------------------------------------- -- Change the leader and localleader g.mapleader = ',' g.maplocalleader = ';' -- Use ctrl-[hjkl] to select the active split! map('n', '', ":wincmd k", { silent = true }) map('n', '', ":wincmd j", { silent = true }) map('n', '', ":wincmd h", { silent = true }) map('n', '', ":wincmd l", { silent = true }) -- Use ,dd for deleting without putting into buffer map({ 'v', 'n' }, 'd', '"_d', { remap = false }) map('n', 'D', '"_D', { remap = false }) map('n', 'x', '"_x', { remap = false }) -- Insert a newline in normal mode by ,o and ,O map('n', 'o', ":call append(line('.'), repeat([''], v:count1))", { remap = false }) map('n', 'O', ":call append(line('.')-1, repeat([''], v:count1))", { remap = false }) -- Use ,u for redo map('n', 'u', "", { remap = false }) -- Browser like keymaps map('n', 'k', ":tabnext", { remap = false }) map('n', 'j', ":tabprevious", { remap = false }) map('n', 'w', ":bdelete", { remap = false }) map('n', 'W', ":bdelete!", { remap = false }) map('n', 't', ":tabnew", { remap = false }) map('n', 'q', ":qa", { remap = false }) map('n', 'Q', ":qa!", { remap = false }) map('n', 's', ":w", { remap = false }) map('n', 'S', ":x", { remap = false }) -- Clear search highlight by Esc in normal mode map('n', '', ':noh', { remap = false }) -- Find files using fzf by ,f map('n', 'f', ':Files', { remap = false })