aboutsummaryrefslogtreecommitdiff
path: root/.config/nvim/lua/config
diff options
context:
space:
mode:
authorJustine Smithies <justine@smithies.me.uk>2025-02-01 15:54:42 +0000
committerJustine Smithies <justine@smithies.me.uk>2025-02-01 15:54:42 +0000
commit6fe6bd334f8c006e6fc8fdf0c8a9a4181000be13 (patch)
tree4c91fcc95664ff640b6b926b7b0cbc9258f9ca7a /.config/nvim/lua/config
parent3fe8cfadba3c095565d30710be5e281780966e78 (diff)
Initial commit of my revamped Neovim config
Diffstat (limited to '.config/nvim/lua/config')
-rw-r--r--.config/nvim/lua/config/autocmd.lua31
-rw-r--r--.config/nvim/lua/config/globals.lua2
-rw-r--r--.config/nvim/lua/config/init.lua44
-rw-r--r--.config/nvim/lua/config/keymaps.lua27
-rw-r--r--.config/nvim/lua/config/options.lua51
5 files changed, 155 insertions, 0 deletions
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("<CR>")'
+})
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", "<leader>m", ":NvimTreeFocus<CR>", opts)
+keymap.set("n", "<leader>f", ":NvimTreeToggle<CR> :NvimTreeRefresh<CR>", { silent = true })
+keymap.set("n", "<C-k>", "<C-w>k", opts) -- NAVIGATE [^] UP
+keymap.set("n", "<C-h>", "<C-w>h", opts) -- NAVIGATE [<] LEFT
+keymap.set("n", "<C-l>", "<C-w>l", opts) -- NAVIGATE [>] RIGHT
+keymap.set("n", "<C-j>", "<C-w>j", opts) -- NAVIGATE [v] DOWN
+
+-- WINDOW MANAGEMENT ---------------------------------------------------------
+keymap.set("n", "<leader>sv", ":vsplit<CR>", opts) -- SPLIT VERTICALLY
+keymap.set("n", "<leader>sh", ":split<CR>", opts) -- SPLIT HORIZONTALLY
+
+-- INDENT --------------------------------------------------------------------
+keymap.set("v", "<", "<gv")
+keymap.set("v", ">", ">gv")
+
+-- COMMENTS ------------------------------------------------------------------
+vim.api.nvim_set_keymap("n", "<C-c>", "gcc", { noremap = false })
+vim.api.nvim_set_keymap("v", "<C-c>", "gcc", { noremap = false })
+
+-- MOVE SELECTED LINES ---------------------------------------------------------
+vim.keymap.set("v", "J", ":m '>+1<CR>gv=gv")
+vim.keymap.set("v", "K", ":m '<-2<CR>gv=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")