diff --git a/init.lua b/init.lua index 38b41df..f4abc21 100644 --- a/init.lua +++ b/init.lua @@ -1,24 +1,128 @@ - -- River Rooks nvim config - - -- CATAGORY: setup - -- line numbers - vim.o.number = true - -- relative numbers - vim.o.relativenumber = true - -- sync clipboard with system - vim.schedule(function() - vim.o.clipboard = 'unnamedplus' - end) - vim.cmd.colorscheme("retrobox") - -- CATAGORY:Keybinds +-- River Rooks nvim config + +-- [[setup]] +vim.g.mapleader = ' ' +vim.g.maplocalleader = ' ' +-- Set to true if you have a Nerd Font installed and selected in the terminal +vim.g.have_nerd_font = false +-- [[Setting options]] +-- See `:help vim.o` +-- NOTE: You can change these options as you wish! +-- For more options, you can see `:help option-list` +-- Make line numbers default +vim.o.number = true +-- You can also add relative line numbers, to help with jumping. +-- Experiment for yourself to see if you like it! +vim.o.relativenumber = true +-- Don't show the mode, since it's already in the status line +vim.o.showmode = false +-- Sync clipboard between OS and Neovim. +-- Schedule the setting after `UiEnter` because it can increase startup-time. +-- Remove this option if you want your OS clipboard to remain independent. +-- See `:help 'clipboard'` +vim.schedule(function() + vim.o.clipboard = 'unnamedplus' +end) +-- Enable break indent +-- Save undo history +vim.o.undofile = true +-- Case-insensitive searching UNLESS \C or one or more capital letters in the search term +vim.o.ignorecase = true +vim.o.smartcase = true +-- Keep signcolumn on by default +vim.o.signcolumn = 'yes' +-- Decrease update time +vim.o.updatetime = 250 +-- Decrease mapped sequence wait time +vim.o.timeoutlen = 300 +-- Configure how new splits should be opened +vim.o.splitright = true +vim.o.splitbelow = true +vim.o.list = true +vim.opt.listchars = { tab = '» ', trail = '·', nbsp = '␣' } +-- Preview substitutions live, as you type! +vim.o.inccommand = 'split' +-- Show which line your cursor is on +vim.o.cursorline = true +-- Minimal number of screen lines to keep above and below the cursor. +vim.o.scrolloff = 25 +-- if performing an operation that would fail due to unsaved changes in the buffer (like `:q`), +-- instead raise a dialog asking if you wish to save the current file(s) +-- See `:help 'confirm'` +vim.o.confirm = true +-- [[Keybinds]] +-- See `:help vim.keymap.set()` +-- See `:help hlsearch` +vim.keymap.set('n', '', 'nohlsearch') +-- Diagnostic keymaps +vim.keymap.set('n', 'q', vim.diagnostic.setloclist, { desc = 'Open diagnostic [Q]uickfix list' }) +vim.keymap.set('t', '', '', { desc = 'Exit terminal mode' }) - -- CATAGORY:scripts - +-- TIP: Disable arrow keys in normal mode +vim.keymap.set('n', '', 'echo "Use h to move!!"') +vim.keymap.set('n', '', 'echo "Use l to move!!"') +vim.keymap.set('n', '', 'echo "Use k to move!!"') +vim.keymap.set('n', '', 'echo "Use j to move!!"') +-- Keybinds to make split navigation easier. +-- Use CTRL+ to switch between windows +-- +-- See `:help wincmd` for a list of all window commands +vim.keymap.set('n', '', '', { desc = 'Move focus to the left window' }) +vim.keymap.set('n', '', '', { desc = 'Move focus to the right window' }) +vim.keymap.set('n', '', '', { desc = 'Move focus to the lower window' }) +vim.keymap.set('n', '', '', { desc = 'Move focus to the upper window' }) +-- NOTE: Some terminals have colliding keymaps or are not able to send distinct keycodes +vim.keymap.set("n", "", "H", { desc = "Move window to the left" }) +vim.keymap.set("n", "", "L", { desc = "Move window to the right" }) +vim.keymap.set("n", "", "J", { desc = "Move window to the lower" }) +vim.keymap.set("n", "", "K", { desc = "Move window to the upper" }) - -- CATAGORY:plugins - require("config.lazy") +-- [[ Basic Autocommands ]] +vim.api.nvim_create_autocmd('TextYankPost', { + desc = 'Highlight when yanking (copying) text', + group = vim.api.nvim_create_augroup('kickstart-highlight-yank', { clear = true }), + callback = function() + vim.hl.on_yank() + end, +}) +-- [[scripts]] +-- Bootstrap lazy.nvim +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not (vim.uv or vim.loop).fs_stat(lazypath) then + local lazyrepo = "https://github.com/folke/lazy.nvim.git" + local out = vim.fn.system({ "git", "clone", "--filter=blob:none", "--branch=stable", lazyrepo, lazypath }) + if vim.v.shell_error ~= 0 then + vim.api.nvim_echo({ + { "Failed to clone lazy.nvim:\n", "ErrorMsg" }, + { out, "WarningMsg" }, + { "\nPress any key to exit..." }, + }, true, {}) + vim.fn.getchar() + os.exit(1) + end +end +vim.opt.rtp:prepend(lazypath) + +-- Make sure to setup `mapleader` and `maplocalleader` before +-- loading lazy.nvim so that mappings are correct. +-- This is also a good place to setup other settings (vim.opt) +vim.g.mapleader = " " +vim.g.maplocalleader = "\\" + +-- Setup lazy.nvim +require("lazy").setup({ + spec = { + -- import your plugins + { import = "plugins" }, + }, + -- Configure any other settings here. See the documentation for more details. + -- colorscheme that will be used when installing plugins. + install = { colorscheme = { "retrobox" } }, + -- automatically check for plugin updates + checker = { enabled = true }, +}) diff --git a/lua/plugins/resize.lua b/lua/plugins/resize.lua deleted file mode 100644 index 25753c6..0000000 --- a/lua/plugins/resize.lua +++ /dev/null @@ -1,11 +0,0 @@ -return { - '0xm4n/resize.nvim', - - keys = { - -- Format: { 'key', 'command', desc = 'description', [opts] - { '', "lua require('resize').ResizeLeft()", { silent = true } }, - { '', "lua require('resize').ResizeRight()", { silent = true } }, - { '', "lua require('resize').ResizeUp()", { silent = true } }, - { '', "lua require('resize').ResizeDown()", { silent = true } }, - }, -} diff --git a/lua/plugins/simple.lua b/lua/plugins/simple.lua new file mode 100644 index 0000000..7723b24 --- /dev/null +++ b/lua/plugins/simple.lua @@ -0,0 +1,23 @@ +return { + 'tpope/vim-commentary', + + { + 'edluffy/hologram.nvim', + auto_display = true, -- WIP automatic markdown image display, may be prone to breaking + }, + + 'soywod/iris.vim', + -- 'tpope/vim-commentary', + { + 'alex-popov-tech/store.nvim', + dependencies = { 'OXY2DEV/markview.nvim' }, + opts = {}, + cmd = 'Store', + }, + + 'tpope/vim-commentary', + 'vimpostor/vim-tpipeline', + 'michaeljsmith/vim-indent-object', + 'kshenoy/vim-signature', + 'mg979/vim-visual-multi', +} diff --git a/lua/plugins/commentary.lua b/old/commentary.lua similarity index 100% rename from lua/plugins/commentary.lua rename to old/commentary.lua diff --git a/lua/plugins/hologram.lua b/old/hologram.lua similarity index 100% rename from lua/plugins/hologram.lua rename to old/hologram.lua diff --git a/lua/plugins/iris.lua b/old/iris.lua similarity index 100% rename from lua/plugins/iris.lua rename to old/iris.lua diff --git a/lua/plugins/neogit.lua b/old/neogit.lua similarity index 100% rename from lua/plugins/neogit.lua rename to old/neogit.lua diff --git a/lua/plugins/presence.lua b/old/presence.lua similarity index 100% rename from lua/plugins/presence.lua rename to old/presence.lua diff --git a/lua/plugins/render-markdown.lua b/old/render-markdown.lua similarity index 100% rename from lua/plugins/render-markdown.lua rename to old/render-markdown.lua diff --git a/lua/plugins/store.lua b/old/store.lua similarity index 100% rename from lua/plugins/store.lua rename to old/store.lua diff --git a/lua/plugins/tmux-status.lua b/old/tmux-status.lua similarity index 100% rename from lua/plugins/tmux-status.lua rename to old/tmux-status.lua diff --git a/lua/plugins/vim-indent-object.lua b/old/vim-indent-object.lua similarity index 100% rename from lua/plugins/vim-indent-object.lua rename to old/vim-indent-object.lua diff --git a/lua/plugins/vim-signature.lua b/old/vim-signature.lua similarity index 100% rename from lua/plugins/vim-signature.lua rename to old/vim-signature.lua diff --git a/lua/plugins/vim-visual-multi.lua b/old/vim-visual-multi.lua similarity index 100% rename from lua/plugins/vim-visual-multi.lua rename to old/vim-visual-multi.lua