simple neovim config
This commit is contained in:
@@ -0,0 +1,85 @@
|
|||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- 1. BASE SETTINGS
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
vim.g.mapleader = " " -- Use Space as the leader key
|
||||||
|
vim.opt.number = true -- Show line numbers
|
||||||
|
vim.opt.relativenumber = true -- Relative numbers for easier jumping
|
||||||
|
vim.opt.mouse = "a" -- Enable mouse support
|
||||||
|
vim.opt.ignorecase = true -- Case-insensitive searching
|
||||||
|
vim.opt.smartcase = true -- ...unless search contains a capital
|
||||||
|
vim.opt.termguicolors = true -- Support for 24-bit RGB colors
|
||||||
|
vim.opt.tabstop = 4 -- Number of spaces a tab counts for
|
||||||
|
vim.opt.shiftwidth = 4 -- Number of spaces for auto-indent
|
||||||
|
vim.opt.expandtab = true -- Turn tabs into spaces
|
||||||
|
vim.opt.scrolloff = 8 -- Keep 8 lines visible above/below cursor
|
||||||
|
vim.opt.updatetime = 50 -- Faster completion/experience
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- 2. PLUGIN BOOTSTRAP (lazy.nvim)
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
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)
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- 3. PLUGIN CONFIGURATION
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
require("lazy").setup({
|
||||||
|
-- Treesitter: Better syntax highlighting
|
||||||
|
{
|
||||||
|
"nvim-treesitter/nvim-treesitter",
|
||||||
|
branch = "master",
|
||||||
|
build = ":TSUpdate",
|
||||||
|
config = function()
|
||||||
|
-- In the new version, we use 'nvim-treesitter' directly
|
||||||
|
require("nvim-treesitter").setup({
|
||||||
|
ensure_installed = { "lua", "vim", "vimdoc", "javascript", "python" },
|
||||||
|
highlight = { enable = true },
|
||||||
|
})
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- Theme: TokyoNight (Modern, Purist, and Fast)
|
||||||
|
{
|
||||||
|
"folke/tokyonight.nvim",
|
||||||
|
lazy = false, -- Make sure it loads on startup
|
||||||
|
priority = 1000, -- Load it before everything else
|
||||||
|
config = function()
|
||||||
|
-- Options: "storm", "moon", "night", "day"
|
||||||
|
vim.cmd([[colorscheme tokyonight-night]])
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
|
||||||
|
-- FZF-Lua: High performance file search (requires fzf installed on system)
|
||||||
|
{
|
||||||
|
"ibhagwan/fzf-lua",
|
||||||
|
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||||
|
config = function()
|
||||||
|
require("fzf-lua").setup({ "fzf-native" })
|
||||||
|
end,
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- 4. KEYMAPS (The Purist Workflow)
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
local fzf = require("fzf-lua")
|
||||||
|
|
||||||
|
-- File Searching
|
||||||
|
vim.keymap.set("n", "<leader>sf", fzf.files, { desc = "Find Files" })
|
||||||
|
vim.keymap.set("n", "<leader>sg", fzf.live_grep, { desc = "Live Grep (Search Text)" })
|
||||||
|
vim.keymap.set("n", "<leader>fb", fzf.buffers, { desc = "Find Buffers" })
|
||||||
|
vim.keymap.set("n", "<leader>fh", fzf.help_tags, { desc = "Search Help" })
|
||||||
|
|
||||||
|
-- File Browsing (Using built-in Netrw)
|
||||||
|
-- This opens the directory view so you don't need a heavy 'Tree' plugin
|
||||||
|
vim.keymap.set("n", "<leader>e", vim.cmd.Ex, { desc = "Open Project View" })
|
||||||
|
|
||||||
|
-- Essential Remaps
|
||||||
|
vim.keymap.set("n", "<C-d>", "<C-d>zz") -- Keep cursor centered when jumping down
|
||||||
|
vim.keymap.set("n", "<C-u>", "<C-u>zz") -- Keep cursor centered when jumping up
|
||||||
Reference in New Issue
Block a user