Compare commits
4 commits
5501a8027a
...
4e01c2903e
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e01c2903e | |||
| a431a8ccbe | |||
| 406895c1f5 | |||
| a3f243f85d |
4 changed files with 120 additions and 10 deletions
101
README.md
101
README.md
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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'" },
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue