initial neovim setup
This commit is contained in:
2
lua/dkelly/core/init.lua
Normal file
2
lua/dkelly/core/init.lua
Normal file
@@ -0,0 +1,2 @@
|
||||
require("dkelly.core.options")
|
||||
require("dkelly.core.keymaps")
|
||||
39
lua/dkelly/core/keymaps.lua
Normal file
39
lua/dkelly/core/keymaps.lua
Normal 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' })
|
||||
|
||||
33
lua/dkelly/core/options.lua
Normal file
33
lua/dkelly/core/options.lua
Normal 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
14
lua/dkelly/lazy.lua
Normal 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")
|
||||
17
lua/dkelly/plugins/colorscheme.lua
Normal file
17
lua/dkelly/plugins/colorscheme.lua
Normal 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
|
||||
}
|
||||
26
lua/dkelly/plugins/nvim-tree.lua
Normal file
26
lua/dkelly/plugins/nvim-tree.lua
Normal 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,
|
||||
}
|
||||
11
lua/dkelly/plugins/telescope.lua
Normal file
11
lua/dkelly/plugins/telescope.lua
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user