Compare commits

...

4 commits

4 changed files with 120 additions and 10 deletions

101
README.md
View file

@ -1 +1,100 @@
# Simple af mininal neovim config # Simple neovim config, with only a small amount of plugins
<!--toc:start-->
- [Simple neovim config, with only a small amount of plugins](#simple-neovim-config-with-only-a-small-amount-of-plugins)
- [Package manager/Lazy loading/Lua compilation for faster startup time](#package-managerlazy-loadinglua-compilation-for-faster-startup-time)
- [Package manager](#package-manager)
- [Lazy loading](#lazy-loading)
- [Lua config compilation for faster startup](#lua-config-compilation-for-faster-startup)
- [Colorscheme](#colorscheme)
- [Treesitter](#treesitter)
- [Lsp](#lsp)
- [Code completion/autocompletion and snippets](#code-completionautocompletion-and-snippets)
<!--toc:end-->
Very simple neovim config with just stuff I need to do my work/act like I'm a worker.
Trying to use as many built in stuff as possible ( That's the main reason I'm rocking the nighly version of neovim ).
I have all my configurations in a `lua/config` directory with a pack.lua file for some plugins that don't need any configurations.
Now I will try and go over a couple type of plugins that I'm using or that I'm not using because it's now built in or just annoying and I don't understand why people use them.
## Package manager/Lazy loading/Lua compilation for faster startup time
This is a pretty broad category because the most popular package manager lazy actually does all of this that's why I have it all mentioned here.
### Package manager
I'm using the new built in neovim package manager **pack** that's currently only available in the neovim nighly v0.12
### Lazy loading
I don't do any lazy loading, I only use ( Looks at notes ) 6 packages only, and they all are either just a colorscheme or have amazing built in lazyloading.
### Lua config compilation for faster startup
This is a feature that lazy.nvim does, and another plugin called impatient.nvim ( I believe that's the name ), but neovim has a built in feature for that since couple version ago ( It's still "experimenta" ) that works as well as the options named before.
## Colorscheme
Using gruvbox colorscheme, fight me or join me I don't care.
## Treesitter
I enjoy using treesitter for syntax highlight.
## Lsp
I use the regular lsp with nvim-lspconfig just for the configurations so I don't have to set configuration for every lsp myself or update them if something changes in how an lsp work's.
I'm still able to change lsp settings using `lsp/name_of_lsp.lua` and changing specific settings I need.
## Code completion/autocompletion and snippets
I'm using the built in code completion and use mini.autocomplete to have autocompletion and definitions automatically show when typing but much less anoying than most other's autocompletion plugins.
I don't use any plugin for stuff like path completion because neovim already has it built in, just type <C-x><C-f> and there are other type's of completion that already exist in neovim.
For snippets I'm also making use of neovim's built in snippet engine with mini.snippets to add some more simple functionality.
## Fuzzy finder/searcher
I'm using mini.pick with multiple other mini extensions to add in more features some of them being:
- git related searches
- pattern searching like FIXME/HACK/TODO/NOTE
- diagnostics
- most visited paths
- path's set with specific tag
## statusline
I'm using the mini.statusline that's very simpe and only has the kind of info I need and nothing else.
## File manager
Mini.move, simple and easilly extendable.
## Keybindings cheatsheet
mini.clue, simple and looks like helix and is less in the way than whichkey and other similar plugins.
Easy to also add custom completions for easier time.
## Auto pair
I don't use any autopair plugins, they are annoying and almost never pair when I need them to and only pair when I don't need them to.
## Miscelenaous plugins
This are all mostly for some nihe stuff and don't have a specific category
- mini.notify : Simple notification
- mini.visits : track visited files and file tagging
- mini.indentscope : highlight current indent scope
- mini.starter : simple dashboard
- mini.sessions : simple session creator
- mini.splitjoin : for easy spliting arguments
- mini.move : add keybindings for moving lines
- mini.icons : add icons support for everything I just named

View file

@ -15,6 +15,9 @@ vim.opt.splitright = true
-- disable line wrapping -- disable line wrapping
vim.opt.wrap = false vim.opt.wrap = false
-- enable global statusline
vim.opt.laststatus = 3
-- setup tabs and indenting -- setup tabs and indenting
vim.opt.expandtab = true vim.opt.expandtab = true
vim.opt.smartindent = true vim.opt.smartindent = true

View file

@ -14,15 +14,6 @@ vim.lsp.config("*", {
}, },
-- make .git always be a root marker -- make .git always be a root marker
root_markers = { '.git' }, root_markers = { '.git' },
-- setup autocompletion
-- on_attach = function(client, bufnr)
-- vim.lsp.completion.enable(true, client.id, bufnr, {
-- autotrigger = true,
-- convert = function(item)
-- return { abbr = item.label:gsub('%b()', '') }
-- end,
-- })
-- end,
}) })
-- enable specific language servers -- enable specific language servers
@ -30,6 +21,7 @@ vim.lsp.enable({
"nixd", "nixd",
"lua_ls", "lua_ls",
"jsonls", "jsonls",
"marksman",
}) })
-- diagnostic settings -- diagnostic settings

View file

@ -140,6 +140,9 @@ miniclue.setup({
-- `z` key -- `z` key
{ mode = 'n', keys = 'z' }, { mode = 'n', keys = 'z' },
{ mode = 'x', keys = 'z' }, { mode = 'x', keys = 'z' },
-- add in support for built in completion
{ mode = 'i', keys = '<C-x>' },
}, },
clues = { clues = {
@ -150,6 +153,19 @@ miniclue.setup({
miniclue.gen_clues.registers(), miniclue.gen_clues.registers(),
miniclue.gen_clues.windows(), miniclue.gen_clues.windows(),
miniclue.gen_clues.z(), miniclue.gen_clues.z(),
-- add some clues to custom stuff
{ mode = "n", keys = "<Leader>f", desc = "Find" },
{ mode = "n", keys = "<Leader>fg", desc = "Git" },
{ mode = "n", keys = "<Leader>l", desc = "Lsp" },
{ mode = "n", keys = "<Leader>s", desc = "Treesitter" },
{ mode = "n", keys = "<Leader>v", desc = "Visits" },
-- built in completion
{ mode = 'i', keys = '<C-x><C-f>', desc = 'File names' },
{ mode = 'i', keys = '<C-x><C-l>', desc = 'Whole lines' },
{ mode = 'i', keys = '<C-x><C-o>', desc = 'Omni completion' },
{ mode = 'i', keys = '<C-x><C-s>', desc = 'Spelling suggestions' },
{ mode = 'i', keys = '<C-x><C-u>', desc = "With 'completefunc'" },
}, },
}) })