-- [[ Setting options ]] -- See `:help vim.o` -- Set highlight on search vim.o.hlsearch = true -- Highlight problematic whitespace vim.o.list = true vim.opt.listchars = { tab = '▶ ', trail = '●', extends = '#', nbsp = '.' } -- Whitespace/tab management vim.opt.expandtab = true vim.opt.tabstop = 4 vim.opt.softtabstop = 4 vim.opt.shiftwidth = 4 -- Make line numbers default vim.wo.number = true vim.opt.colorcolumn = '120' vim.opt.cursorline = true -- Enable mouse mode vim.o.mouse = 'a' -- Enable break indent vim.o.breakindent = true vim.o.wrap = false -- Save undo history vim.o.undofile = true -- Case insensitive searching UNLESS /C or capital in search vim.o.ignorecase = true vim.o.smartcase = true -- Decrease update time vim.o.updatetime = 250 vim.wo.signcolumn = 'yes' -- Set colorscheme vim.o.termguicolors = true -- vim.cmd [[colorscheme molokini]] -- vim.cmd.colorscheme('molokini') vim.cmd.colorscheme('habamax') -- Set completeopt to have a better completion experience vim.o.completeopt = 'menuone,noselect' -- Do not auto read file when in focus vim.o.autoread = false -- [[ Basic Keymaps ]] -- Set as the leader key -- See `:help mapleader` -- NOTE: Must happen before plugins are required (otherwise wrong leader will be used) vim.g.mapleader = ',' vim.g.maplocalleader = ',' -- Keymaps for better default experience -- See `:help vim.keymap.set()` vim.keymap.set({ 'n', 'v' }, '', '', { silent = true }) -- Remap for dealing with word wrap vim.keymap.set('n', 'k', "v:count == 0 ? 'gk' : 'k'", { expr = true, silent = true }) vim.keymap.set('n', 'j', "v:count == 0 ? 'gj' : 'j'", { expr = true, silent = true }) vim.api.nvim_set_keymap('n', '', ':Explore', { noremap = 1 }) vim.api.nvim_set_keymap('n', '', ':bn', { noremap = 1 }) vim.api.nvim_set_keymap('v', '', ':bn', { noremap = 1 }) vim.api.nvim_set_keymap('n', '', ':bp', { noremap = 1 }) vim.api.nvim_set_keymap('n', '', ':e', { noremap = 1 }) vim.api.nvim_set_keymap('n', '', 'w', { noremap = 1 }) vim.api.nvim_set_keymap('n', '', 'W', { noremap = 1 }) -- S-F6 (F18 defined in ST's config.h) vim.api.nvim_set_keymap('n', '', 'o', { noremap = 1 }) vim.api.nvim_set_keymap('n', '', 'v', { noremap = 1 }) vim.api.nvim_set_keymap('n', '', 's', { noremap = 1 }) -- S-F8 (F20 defined in ST's config.h) vim.api.nvim_set_keymap('n', '', ':confirm bd', { noremap = 1 }) -- C-F11 (F35 defined in ST's config.h) vim.api.nvim_set_keymap('v', '','"*ygv', { noremap = 1 }) -- Copy selection to clipboard vim.api.nvim_set_keymap('v', '<2-LeftRelease>','"*ygv', { noremap = 1 }) -- Copy word selection to clipboard vim.api.nvim_set_keymap('v', '<3-LeftRelease>','"*ygv', { noremap = 1 }) -- Copy line selection to clipboard vim.api.nvim_set_keymap('v', '<4-LeftRelease>','"*ygv', { noremap = 1 }) -- Copy column selection to clipboard vim.api.nvim_set_keymap('v', '', '"hy/h', { noremap = 1 }) -- Search selected text vim.api.nvim_set_keymap('n', '', 'za', { noremap = 1 }) -- Toggle fold vim.api.nvim_set_keymap('v', '<', '', '>gv', { noremap = 1 }) -- Preserve selection after right indent vim.api.nvim_set_keymap('v', 'Q', 'gqa', { noremap = 1 }) -- Reflow visually highlighted lines with Q vim.api.nvim_set_keymap('n', 'Q', 'gq', { noremap = 1 }) -- Reflow text -- Insert time/date stamps vim.api.nvim_set_keymap('n', 'td', 'a=strftime(\'%Y/%m/%d\')', { noremap = 1 }) -- 'Insert [T]imestamp - [d]ate' vim.api.nvim_set_keymap('n', 'tt', 'a=strftime(\'%Y/%m/%d %H:%M:%S\')', { noremap = 1 }) -- 'Insert [T]imestamp - date[t]ime' -- The line beneath this is called `modeline`. See `:help modeline` -- vim: ft=lua ts=4 sts=4 sw=4 et