diff --git a/root.init.lua b/root.init.lua new file mode 100644 index 0000000..50595a4 --- /dev/null +++ b/root.init.lua @@ -0,0 +1,94 @@ +-- [[ 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