use the latest and greatest neovim (0.11 rn)
cause fuck yeah only latest baby
also this assumes you install all of your dependencies using nix lol, so no Mason for you
i mean mason is kinda still available as a plugin so you can still use it and just put your mason stuff in ensure.lua then the M.mason
im lowky kinda waiting for multicursor support
tl;dr read ./enabled-plugins.txt
i used to have one big plugins.lua with all my plugins. this was a bit of a hassle because whenever i update it, lazy will fail to load the other plugins (including the theme), so i had to close neovim again and reopen it.
sometimes i want to enable or disable a plugin. of course i can just use
enabled = false, but lazy still needs to parse it which is slow in my eyes. so
i just comment it in my big plugins.lua which is kinda hard to navigate if you
dont have folds, and even then its still chunky.
i wanted to try what everyone else was doing so now its all fragmented into
their own .lua file, so i can just put it in the folder (lua/pluggers) that
lazy.nvim uses and it is enabled.
then i got a problem to solve. theres too much friction moving plugins using
mv PLUGIN.lua disabled/PLUGIN.lua when i wanted to disable one. and i wanted
to categorize them so its easy which plugin i wanna change or add to.
i first tried using shell scriptinng and it was horrible. probably because im bad at making scripts but i more blamed it on shell being a shitty language to write in
so i created [relink.go] which basically automates symlinking by the [enabled-plugins.txt] file and it works wonderfully tbh. and much easier to write than in shell. probably the first time i ever used go as a sort of cli tool or script or even just making my own cli for a specific purpose
-
cloak.nvim for protecting against like keys while streaming
-
bullets.vim i need to fix to config of this
-
mini.move adds the primeagen mapping to move a selaction up and down
-
outline.nvim a sort of table of contents for your code
-
overseer.nvim job and task management, like github actions or bulids
-
mini.snippets custom snippets that are easy to write like coq
-
make dap work well
-
or just make testing just a lil easier
-
this guy's config https://www.youtube.com/watch?v=NkQnPuidxWY
- sessions (persistence)
- actually dont like this
- im gonna use arrow.nvim instead
- tree like thing (i use netrw because yeah)
- i like the float, might never use, im gonna get like oil.nvim instead though
- i installed oil and its good
- breadcrumbs.nvim / nvim-navic
- idk maybe
- automatic test opening stuff
- cool
- sessions (persistence)
-
literally any tree plugin or file explorer
- oil.nvim
- oil is really cool, but there is another
- fyler.nvim
- one thing i kinda want to have is
- currently really buggy and is missing some features i still have to add
- oil.nvim
-
grug-far.nvim so that i dont use this, i should really setup a keybind/or atleast a note on how to do good native search and replace
- populate the arglist using telescope
<Leader>florTelescope live_grep :cdo %s/{old}/{new}/g
- populate the arglist using telescope
-
treewalker.nvim for somereason this plugin only existed now?
-
flash.nvim i have not used flash (or any similar) before and im hesitant to change to one
-
vim-dadbod-completion database completion from within neovim
-
distant.nvim remote work on neovim!!
-
nvim-dap i can NOt make this shit work for some reason
-
Neotest (very interesting)
-
submode.nvim (very very interesting)
- iirc which-key.nvim also now has hydra stuff
-
Git plugins, only for when Im gonna be managing alot of gits in the future, but right now i do a little hack ;)
-
new neovim look
- nvim-notify
- dressing.nvim dresses
- i already use this now using snacks.nvi/ui
- noice.nvim
-
kulala.nvim - its like an HTTP testing server
-
Colorscheming
- mini.base16 -- coolors
- mini.colors orlush
- mini.hues
- Neogen (kinda interesting)
- automatically puts an annotation which is very nice and works better than snippets can
- mainly for like lua it does well
- Bufferline plugins (mini.tabline, bufferline.nvim, etc...)
- I've been thinking about how you should go about in a project and I am currently trying to ditch bufferlines or buffer related workflow and try ThePrimeagen's Harpoon where he sets 4 main files that he constantly goes to and only goes to the other files via file picker or lsp get def.
- My buffer workflow
- It's basically just vim tabs but better
- How
- open a workspace with persistence.nvim
- persistence will open all the buffers you used before
- go through the buffers one by one
- or jump to a specific buffer with a single chord
- close a buffer if you no longer need it
- use any file picker to open the file you want in a buffer
- Telescope or netrw
- Keybindings
- Tab, = :bnext, :bprev
- <A-[1-9]> = jump to bufferline index 1-9
- c = close buffer
- netrw.nvim
- netrw is mid i just realized, never having ts ever again 🙏
- oil.nvim or fyler.nvim is fetter
what if i make a neovim distro purely made to be mouse and input mode only
sounds stupid but there is a lack of extremely lightweight (i. e. cli/tui) text editors out there that have good functionality
and its made for people who wont even learn vim motions but be able to use its amazing ecosystem - im gonna name it devil.nvim (de-evil like evil mode in emacs) or like good.nvim (opposite of evil) - or like neo as in taking the vim out of neovim
kinda like a modern evim
you might wanna do the uninstall instruction first so no conflicts arise
git clone https://github.com/GravityShark/nvim-kick.git ~/.config/nvim
cd ~/.config/nvim
git config --local include.path ../.gitconfig
# then run the relink command with your preferred plugins
./relink.outthen you go ahead change the lua/ensure.lua to set what kind of lsp, treesitter, formatters, and linters you wanna have
then run nvim or wheatever neovim client you use
like neovide
# will completely remove anything in neovim
rm -rf ~/.config/nvim
rm -rf ~/.local/share/nvim
rm -rf ~/.local/state/nvim
rm -rf ~/.cache/nvim
- thanks [kickstart.nvim]
## note
nvim servers exist, might use it to create cool shit like cool tranitions with mini.color a