From 6fe6bd334f8c006e6fc8fdf0c8a9a4181000be13 Mon Sep 17 00:00:00 2001 From: Justine Smithies Date: Sat, 1 Feb 2025 15:54:42 +0000 Subject: Initial commit of my revamped Neovim config --- .config/nvim/lua/config/autocmd.lua | 31 ++++++++++++++++++++++ .config/nvim/lua/config/globals.lua | 2 ++ .config/nvim/lua/config/init.lua | 44 ++++++++++++++++++++++++++++++++ .config/nvim/lua/config/keymaps.lua | 27 ++++++++++++++++++++ .config/nvim/lua/config/options.lua | 51 +++++++++++++++++++++++++++++++++++++ 5 files changed, 155 insertions(+) create mode 100644 .config/nvim/lua/config/autocmd.lua create mode 100644 .config/nvim/lua/config/globals.lua create mode 100644 .config/nvim/lua/config/init.lua create mode 100644 .config/nvim/lua/config/keymaps.lua create mode 100644 .config/nvim/lua/config/options.lua (limited to '.config/nvim/lua/config') diff --git a/.config/nvim/lua/config/autocmd.lua b/.config/nvim/lua/config/autocmd.lua new file mode 100644 index 0000000..b1facb8 --- /dev/null +++ b/.config/nvim/lua/config/autocmd.lua @@ -0,0 +1,31 @@ +local autocmd = vim.api.nvim_create_autocmd -- Create autocommand + +-- Remove end of buffer ~ on buffer enter +autocmd('BufEnter', { + pattern = '*', + command = "let &fcs='eob: '" +}) + +-- Turn off line numbers on entering terminal +autocmd('TermOpen', { + pattern = '*', + command = 'setlocal nonumber norelativenumber' +}) + +-- Insert mode on entering terminal +autocmd('TermOpen', { + pattern = '*', + command = 'startinsert' +}) + +-- Close terminal buffer on process exit +autocmd('BufLeave', { + pattern = 'term://*', + command = 'stopinsert' +}) + +-- Close terminal buffer on process exit +autocmd('TermClose', { + pattern = 'term://*', + command = 'call nvim_input("")' +}) diff --git a/.config/nvim/lua/config/globals.lua b/.config/nvim/lua/config/globals.lua new file mode 100644 index 0000000..2e2e702 --- /dev/null +++ b/.config/nvim/lua/config/globals.lua @@ -0,0 +1,2 @@ +vim.g.mapleader = " " +vim.g.maplocalleader = " " diff --git a/.config/nvim/lua/config/init.lua b/.config/nvim/lua/config/init.lua new file mode 100644 index 0000000..2b6e039 --- /dev/null +++ b/.config/nvim/lua/config/init.lua @@ -0,0 +1,44 @@ +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", -- latest stable release + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require('config.globals') +require('config.options') +require('config.keymaps') +require('config.autocmd') + +local opts = { + defaults = { + lazy = true, + }, + install = { + colorscheme = { "gruvbox" } + }, + rtp = { + disabled_plugins = { + "gzip", + "matchit", + "matchparen", + "netrw", + "netrwPlugin", + "tarPlugin", + "tohtml", + "tutor", + "zipPlugin", + } + }, + change_detection = { + notify = true + }, +} + +require("lazy").setup('plugins', opts) diff --git a/.config/nvim/lua/config/keymaps.lua b/.config/nvim/lua/config/keymaps.lua new file mode 100644 index 0000000..363f8bc --- /dev/null +++ b/.config/nvim/lua/config/keymaps.lua @@ -0,0 +1,27 @@ +local keymap = vim.keymap + +local opts = { noremap = true, silent = true } + +-- DIRECTORY NAVIGATION ------------------------------------------------------ +keymap.set("n", "m", ":NvimTreeFocus", opts) +keymap.set("n", "f", ":NvimTreeToggle :NvimTreeRefresh", { silent = true }) +keymap.set("n", "", "k", opts) -- NAVIGATE [^] UP +keymap.set("n", "", "h", opts) -- NAVIGATE [<] LEFT +keymap.set("n", "", "l", opts) -- NAVIGATE [>] RIGHT +keymap.set("n", "", "j", opts) -- NAVIGATE [v] DOWN + +-- WINDOW MANAGEMENT --------------------------------------------------------- +keymap.set("n", "sv", ":vsplit", opts) -- SPLIT VERTICALLY +keymap.set("n", "sh", ":split", opts) -- SPLIT HORIZONTALLY + +-- INDENT -------------------------------------------------------------------- +keymap.set("v", "<", "", ">gv") + +-- COMMENTS ------------------------------------------------------------------ +vim.api.nvim_set_keymap("n", "", "gcc", { noremap = false }) +vim.api.nvim_set_keymap("v", "", "gcc", { noremap = false }) + +-- MOVE SELECTED LINES --------------------------------------------------------- +vim.keymap.set("v", "J", ":m '>+1gv=gv") +vim.keymap.set("v", "K", ":m '<-2gv=gv") diff --git a/.config/nvim/lua/config/options.lua b/.config/nvim/lua/config/options.lua new file mode 100644 index 0000000..dbd8e66 --- /dev/null +++ b/.config/nvim/lua/config/options.lua @@ -0,0 +1,51 @@ +-- disable netrw at the very start of your init.lua -------------------------- +vim.g.loaded_netrw = 1 +vim.g.loaded_netrwPlugin = 1 + +local opt = vim.opt + +-- TAB/INDENT ---------------------------------------------------------------- +opt.tabstop = 2 +opt.shiftwidth = 2 +opt.softtabstop = 2 +opt.expandtab = true +opt.smartindent = true +opt.wrap = false + +-- SEARCH -------------------------------------------------------------------- +opt.incsearch = true +opt.ignorecase = true +opt.smartcase = true +opt.hlsearch = false + +-- APPEARANCE ---------------------------------------------------------------- +opt.number = true +opt.relativenumber = false +opt.termguicolors = true +--opt.colorcolumn = "100" +opt.signcolumn = "yes" +opt.cmdheight = 1 +opt.scrolloff = 10 +opt.completeopt = "menuone,noinsert,noselect" +opt.cursorline = true -- Highlight the active cursor line + +-- MISC ---------------------------------------------------------------------- +opt.hidden = true +opt.errorbells = false +opt.swapfile = false +opt.backup = false +opt.undodir = vim.fn.expand("~/.config/nvim/undodir//") +opt.undofile = true +opt.backspace = "indent,eol,start" +opt.splitright = true +opt.splitbelow = true +opt.autochdir = false +opt.modifiable = true +opt.encoding = "UTF-8" +opt.guicursor = "n-v-c:block,i-ci-ve:block,r-cr:hor20,o:hor50,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor,sm:block-blinkwait175-blinkoff150-blinkon175" +opt.termguicolors = true + +-- APPEND -------------------------------------------------------------------- +opt.mouse:append('a') +opt.iskeyword:append("-") +opt.clipboard:append("unnamedplus") -- cgit v1.2.3