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
|
||||
vim.opt.wrap = false
|
||||
|
||||
-- enable global statusline
|
||||
vim.opt.laststatus = 3
|
||||
|
||||
-- setup tabs and indenting
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.smartindent = true
|
||||
|
|
|
|||
|
|
@ -14,15 +14,6 @@ vim.lsp.config("*", {
|
|||
},
|
||||
-- make .git always be a root marker
|
||||
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
|
||||
|
|
@ -30,6 +21,7 @@ vim.lsp.enable({
|
|||
"nixd",
|
||||
"lua_ls",
|
||||
"jsonls",
|
||||
"marksman",
|
||||
})
|
||||
|
||||
-- diagnostic settings
|
||||
|
|
|
|||
|
|
@ -140,6 +140,9 @@ miniclue.setup({
|
|||
-- `z` key
|
||||
{ mode = 'n', keys = 'z' },
|
||||
{ mode = 'x', keys = 'z' },
|
||||
|
||||
-- add in support for built in completion
|
||||
{ mode = 'i', keys = '<C-x>' },
|
||||
},
|
||||
|
||||
clues = {
|
||||
|
|
@ -150,6 +153,19 @@ miniclue.setup({
|
|||
miniclue.gen_clues.registers(),
|
||||
miniclue.gen_clues.windows(),
|
||||
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