initial neovim setup

This commit is contained in:
2025-04-22 11:00:57 -05:00
commit 842b0218b9
9 changed files with 152 additions and 0 deletions

2
lua/dkelly/core/init.lua Normal file
View File

@@ -0,0 +1,2 @@
require("dkelly.core.options")
require("dkelly.core.keymaps")

View File

@@ -0,0 +1,39 @@
vim.g.mapleader = " "
local keymap = vim.keymap
keymap.set("i", "jk", "<ESC>", { desc = "Exit insert mode with jk" })
keymap.set("n", "<leader>nh", ":nohl<CR>", { desc = "Clear search highlights" })
keymap.set("n", "<leader>+", "<C-a>", { desc = "Increment number" })
keymap.set("n", "<leader>-", "<C-x>", { desc = "Decrement number" })
-- keymap.set("n", "<leader>e", "<cmd>Explore<CR>", { desc = fFile Explore" })
-- window management
keymap.set("n", "<leader>wv", "<C-w>v", { desc = "Split window vertically" })
keymap.set("n", "<leader>ws", "<C-w>s", { desc = "Split window horizontally"})
keymap.set("n", "<leader>w=", "<C-w>=", { desc = "Make splits equal size" })
keymap.set("n", "<leader>wx", "<cmd>close<CR>", { desc = "Close current split" })
keymap.set("n", "<leader>wh", "<C-w>h", { desc = "Go to left window" })
keymap.set("n", "<leader>wj", "<C-w>j", { desc = "Go to window below" })
keymap.set("n", "<leader>wk", "<C-w>k", { desc = "Go to window above" })
keymap.set("n", "<leader>wl", "<C-w>l", { desc = "Go to right window" })
keymap.set("n", "<leader>to", "<cmd>tabnew<CR>", { desc = "Open new tab" })
keymap.set("n", "<leader>tx", "<cmd>tabclose<CR>", { desc = "Close new tab" })
keymap.set("n", "<leader>tn", "<cmd>tabn<CR>", { desc = "Go to next tab" })
keymap.set("n", "<leader>tp", "<cmd>tabp<CR>", { desc = "Go to previous tab" })
keymap.set("n", "<leader>tf", "<cmd>tabnew %>", { desc = "Open current buffer in new tab" })
keymap.set("n", "<leader>rk", "<cmd>resize +5<CR>", { desc = "Increase window height" })
keymap.set("n", "<leader>rj", "<cmd>resize -5<CR>", { desc = "Decrease window height" })
keymap.set("n", "<leader>rl", "<cmd>vertical resize +5<CR>", { desc = "Increase window width" })
keymap.set("n", "<leader>rh", "<cmd>vertical resize -5<CR>", { desc = "Decrease window width" })
-- fuzzy find
--local builtin = require('telescope.builtin')
--vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
--vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
--vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
--vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })

View File

@@ -0,0 +1,33 @@
vim.cmd("let g:netrw_liststyle = 3")
local opt = vim.opt
opt.relativenumber = true
opt.number = true
-- tabs & indentation
opt.tabstop = 2 -- 2 spaces for tabs (prettier default)
opt.shiftwidth = 2 -- 2 spaces for indent width
opt.expandtab = true -- expand tab to spaces
opt.autoindent = true -- copy indent from current line when starting new one
-- search settings
opt.ignorecase = true
opt.smartcase = true
opt.cursorline = true
opt.termguicolors = true
opt.background = "dark"
opt.signcolumn = "yes"
-- backspace
opt.backspace = "indent,eol,start" -- allow backspace on indent, end of line or insert mode start position
-- clipboard
opt.clipboard:append("unnamedplus") -- use system clipboard as default register
-- split windows
opt.splitright = true -- split vertical window to the right
opt.splitbelow = true -- split horizantal window to the bottom

14
lua/dkelly/lazy.lua Normal file
View File

@@ -0,0 +1,14 @@
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",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup("dkelly.plugins")

View File

@@ -0,0 +1,17 @@
return {
"folke/tokyonight.nvim",
priority = 1000,
config = function ()
require("tokyonight").setup({
style = "night",
on_colors = function(colors)
colors.bg = "#0d0d0d" -- main background (very dark)
colors.bg_dark = "#1a1a1a" -- sidebars
colors.bg_sidebar = "#1a1a1a" -- match sidebars with bg_dark
colors.bg_float = "#1a1a1a" -- floats get a soft contrast
colors.border = "#3c3c3c" -- add a border tone
end,
})
vim.cmd("colorscheme tokyonight")
end
}

View File

@@ -0,0 +1,26 @@
return {
"nvim-tree/nvim-tree.lua",
dependencies = {
"nvim-tree/nvim-web-devicons",
},
config = function()
vim.g.loaded_netrw = 1
vim.g.loaded_netrwPlugin = 1
require("nvim-tree").setup({
view = {
width = 35,
relativenumber = true,
},
renderer = {
indent_markers = {
enable = true,
},
},
})
local keymap = vim.keymap
keymap.set("n", "<leader>ee", "<cmd>NvimTreeToggle<CR>", { desc = "Toggle file explorer" })
keymap.set("n", "<leader>ef", "<cmd>NvimTreeFindFileToggle<CR>", { desc = "Toggle file explorer on current buffer" })
keymap.set("n", "<leader>ec", "<cmd>NvimTreeCollapse<CR>", { desc = "Collapse file explorer" })
keymap.set("n", "<leader>er", "<cmd>NvimTreeRefresh<CR>", { desc = "Refresh file explorer" })
end,
}

View File

@@ -0,0 +1,11 @@
return {
'nvim-telescope/telescope.nvim',
dependencies = { 'nvim-lua/plenary.nvim'},
config = function ()
local builtin = require('telescope.builtin')
vim.keymap.set('n', '<leader>ff', builtin.find_files, { desc = 'Telescope find files' })
vim.keymap.set('n', '<leader>fg', builtin.live_grep, { desc = 'Telescope live grep' })
vim.keymap.set('n', '<leader>fb', builtin.buffers, { desc = 'Telescope buffers' })
vim.keymap.set('n', '<leader>fh', builtin.help_tags, { desc = 'Telescope help tags' })
end
}