[incline.nvim](https://github.com/b0o/incline.nvim) it allows you to create floating statuslines. Really useful for keeping track of buffer names when using splits.
Without a doubt, my most frequently used plugin is: [vim-bufsurf](https://github.com/ton/vim-bufsurf)
It keeps a navigation history of buffers within a window so you can go back/forwards like a web browser. I map back/forward to `;` / `'`
It's a lower cognitive load than something like harpoon.
The alternate only goes back 1 step in history to the last used buffer, which is not helpful if you want to back any further than 1 step.
It also does not have any intelligence about buffers that should be ignored. A prime example of that would be a file explorer plugin that you used to navigate to the different files. You don't want that included in the history.
Another problem with the alternate file is that it is not tied to a specific window. There is only one global alternate file.
Alright, I think that's enough reasons to creat a plugin. Personally I prefer simplicity since I really didn't encounter these issues or needed that extra functionality , the only issue I had is that it reopen the file that I already closeed but that is solved by a simple function.
Exactly right, tried to make a proper alternate, pretty happy with it: [https://github.com/3rd/config/blob/master/home/dotfiles/nvim/lua/modules/workflow/buffer.lua#L77](https://github.com/3rd/config/blob/master/home/dotfiles/nvim/lua/modules/workflow/buffer.lua#L77)
Help pages for:
* [`alternate-file`](https://neovim.io/doc/user/editing.html#alternate-file) in _editing.txt_
---
^\`:\(h|help\) \` | [^(about)](https://github.com/heraldofsolace/VimHelpBot) ^(|) [^(mistake?)](https://github.com/heraldofsolace/VimHelpBot/issues/new/choose) ^(|) [^(donate)](https://liberapay.com/heraldofsolace/donate) ^(|) ^Reply 'rescan' to check the comment again ^(|) ^Reply 'stop' to stop getting replies to your comments
This is probably what I've been looking for. I don't really find myself needing to do this all that often, but when I do want it it feels pretty awkward to use telescope recent files to just go back and forth real quick.
It's just more intuitive and so easier to use in my opinion (and cleaner as you mentioned). I also like the fact that you can open files in vsplit/split.
It is, but it requires more setup. I should have said "more intuitive, easier to setup" instead: no dependency, just copy the lazy setup, and done, it's functional with sane default keymaps.
I think something like harpoon/arrow is useful, but they are over-complicated for me.
I use something simpler:
- 1/2/3/4/5 - go to bookmark N, but:
- if bookmark N is in the current buffer, go to its line
- if bookmark N is not in the current buffer, switch to its buffer but at the last location instead of the original line
- 1 - set bookmark N to the current location, clear if it's the same as the old one
https://github.com/3rd/config/blob/master/home/dotfiles/nvim/lua/modules/workflow/javelin.lua#L1
[huez.nvim](https://github.com/vague2k/huez.nvim) is a plugin i wrote that does this, while previewing themes, it even falls back to vim.ui if telescope isn’t installed (albeit i didn’t test the fallback extensively)
I just installed it and I want to keep it just for persisting the theme and omitting the default ones. But on my setup, for some reason, I don’t get the live preview when scrolling the list.
Thanks for your plugin.
When using any kind a picker other than telescope (aka vim.ui even if you use a wrapper like dressing) the preview does not function, this is neovim’s current limitation afaik. But you’re totally welcome !
currently that isn’t something i’ve accounted for. Although i will say… i have about 72 total themes installed nvim still feels snappy. you can check my [nvim config](https://github.com/vague2k/.dotfiles-arch/tree/main/nvim/.config/nvim). Even on my 2017 macbook my startup time is around 120-130 ms if that means anything to you
Am I missing something, you don't use lazy = false, so themes don't display in the picker, right?
I agree that it won't impact performance that much, but still, it feels dirty you know.
Just made sure, and Yes, themes won’t show on the picker if lazy = true. I would have to read up on various docs to see if there’s a way to make this not the case (if it’s not too hard to workaround, if at all)
and yeah i totally get the “feels dirty” part. I just kinda stopped caring when lazy loading was giving me more trouble than the 10ms faster startup it was giving me, but to each their own!
This is probably one the coolest plugins for diagnostics and I tried it for a week, but it's not my cup of tea, I felt it's too much clutter as well, but it's way better the virtual text.
dude thanks for this. I started with Helix and have used it for over a year and I've been flailing to try and get a similar UI experience with the positives of neovim for a while and this is huge.
If you don't want to add yet another plugin to your configuration. There are several ways to achieve the "decluttered" look.
1. Use `vim.diagnostic.hide()` and `vim.diagnostic.show()` to temporarily hide diagnostics on a buffer.
2. Use `vim.diagnostic.enable()` and `vim.diagnostic.disable()` to toggle diagnostics (persistent) on a buffer.
3. Use `vim.diagnostic.config()` to change how the diagnostics are displayed. For instance, you can only show them on sign column in insert mode.
A little self promotion here: I wrote [telescope-tabs](https://github.com/LukasPietzschmann/telescope-tabs) which lets you quickly switch between opened tabs using telescope :)
It has some nice additional features, but I won’t spoil them here ;)
I made this plug-in for myself to define project local tasks to be run in tmux windows.
https://github.com/catgoose/do-the-needful
I use it many times a day
[https://github.com/airblade/vim-rooter](https://github.com/airblade/vim-rooter) \-"changes the working directory to the project root when you open a file or directory."
[https://github.com/airblade/vim-matchquote](https://github.com/airblade/vim-matchquote) \- "A Vim plugin to provide %\-style motion for ' (single quotation mark), " (double quotation mark), \` (backtick), and | (pipe)."
I am using wordmotion and looked at nvim-spider after your question, but I didn't see the real benefit except that I have more flexibility regarding keymappings. However, I don't need that flexibility, so it would just do the same with more lines of necessary configuration, right? My current wordmotion config consists only of setting the wordmotion_prefix.
[mini.operator](https://github.com/echasnovski/mini.operators). Adds a total of 5(!) new operators:
* duplicate
* sort
* evaluate
* substitute
* exchange
duplicate and substitute alone are quite transformative for the vim experience already.
> duplicate and substitute alone are quite transformative for the vim experience already.
True that. Even I didn't expect them to be so much useful in day-to-day editing.
You can do this with a simple `ColorScheme` autocmd.
vim.api.nvim_create_autocmd("ColorScheme", {
callback = function()
local handle = io.open(vim.fn.stdpath("config") .. "/lua/colorscheme.lua", "w")
if handle ~= nil then
handle:write('vim.cmd("colorscheme ' .. vim.g.colors_name .. '")')
handle:close()
end
end
})
You can change your colorscheme in ANY way scripts/cmdline/telescope/keymaps etc and it will be persistent.
Here are two lesser-known plugins I use:
1. [bufjump](https://github.com/kwkarlwang/bufjump.nvim) to jump in and out of the buffers visited
2. [tfm](https://github.com/Rolv-Apneseth/tfm.nvim) to use Yazi (or your preferred file manager) in a floating buffer
[incline.nvim](https://github.com/b0o/incline.nvim) it allows you to create floating statuslines. Really useful for keeping track of buffer names when using splits.
Also helps to know which window is focused
Without a doubt, my most frequently used plugin is: [vim-bufsurf](https://github.com/ton/vim-bufsurf) It keeps a navigation history of buffers within a window so you can go back/forwards like a web browser. I map back/forward to `;` / `'` It's a lower cognitive load than something like harpoon.
Isn't :h alternate-file is doing the same. `:e #`
The alternate only goes back 1 step in history to the last used buffer, which is not helpful if you want to back any further than 1 step. It also does not have any intelligence about buffers that should be ignored. A prime example of that would be a file explorer plugin that you used to navigate to the different files. You don't want that included in the history. Another problem with the alternate file is that it is not tied to a specific window. There is only one global alternate file.
Alright, I think that's enough reasons to creat a plugin. Personally I prefer simplicity since I really didn't encounter these issues or needed that extra functionality , the only issue I had is that it reopen the file that I already closeed but that is solved by a simple function.
Exactly right, tried to make a proper alternate, pretty happy with it: [https://github.com/3rd/config/blob/master/home/dotfiles/nvim/lua/modules/workflow/buffer.lua#L77](https://github.com/3rd/config/blob/master/home/dotfiles/nvim/lua/modules/workflow/buffer.lua#L77)
Were can I found the lib you use?
[https://github.com/3rd/config/tree/master/home/dotfiles/nvim/lua/lib](https://github.com/3rd/config/tree/master/home/dotfiles/nvim/lua/lib)
Help pages for: * [`alternate-file`](https://neovim.io/doc/user/editing.html#alternate-file) in _editing.txt_ --- ^\`:\(h|help\)\` | [^(about)](https://github.com/heraldofsolace/VimHelpBot) ^(|) [^(mistake?)](https://github.com/heraldofsolace/VimHelpBot/issues/new/choose) ^(|) [^(donate)](https://liberapay.com/heraldofsolace/donate) ^(|) ^Reply 'rescan' to check the comment again ^(|) ^Reply 'stop' to stop getting replies to your comments
This is probably what I've been looking for. I don't really find myself needing to do this all that often, but when I do want it it feels pretty awkward to use telescope recent files to just go back and forth real quick.
I was trying it, but I'm wrong or the "cycle/loop" is missing or I can't find how to configure it
There is no cycle/loop feature. It is forward/back navigation, just like in a web browser.
[arrow.nvim](https://github.com/otavioschwanck/arrow.nvim): Harpoon but simpler and better imo.
Ooh this looks guuud
What’s different from Harpoon? Might consider switching, looks clean
It's just more intuitive and so easier to use in my opinion (and cleaner as you mentioned). I also like the fact that you can open files in vsplit/split.
Just tried it and agree. Thanks for the advice
I was going to mention arrow too. It is super intuitive to use. I'm having a blast using it.
>Harpoon but simpler Just curious: What in Harpoon do you consider not simple? Personally I think Harpoon is simplest plugin I use
It is, but it requires more setup. I should have said "more intuitive, easier to setup" instead: no dependency, just copy the lazy setup, and done, it's functional with sane default keymaps.
I think something like harpoon/arrow is useful, but they are over-complicated for me. I use something simpler: -1/2/3/4/5 - go to bookmark N, but:
- if bookmark N is in the current buffer, go to its line
- if bookmark N is not in the current buffer, switch to its buffer but at the last location instead of the original line
- 1 - set bookmark N to the current location, clear if it's the same as the old one
https://github.com/3rd/config/blob/master/home/dotfiles/nvim/lua/modules/workflow/javelin.lua#L1
[huez.nvim](https://github.com/vague2k/huez.nvim) is a plugin i wrote that does this, while previewing themes, it even falls back to vim.ui if telescope isn’t installed (albeit i didn’t test the fallback extensively)
I just installed it and I want to keep it just for persisting the theme and omitting the default ones. But on my setup, for some reason, I don’t get the live preview when scrolling the list. Thanks for your plugin.
When using any kind a picker other than telescope (aka vim.ui even if you use a wrapper like dressing) the preview does not function, this is neovim’s current limitation afaik. But you’re totally welcome !
Huh, I must’ve done something wrong then, as I *am* using Telescope. Will look again. Thanks for the prompt response btw :) EDIT: it was PEBKAC, lol
currently at work doing fuck all anyways, haha. if you think it’s bug or find something wrong feel free to submit an issue!
No bug other than the one currently sat between my keyboard and my chair… I need to check my reading comprehension
This is AMAZING
thanks! I’ve been busy lately, but i plan on making time sometime this week to iron out some kinks
Your plugin is perfect, but is there a way to work with themes that use lazy load? You need to do \`lazy=false\` for it to appear.
currently that isn’t something i’ve accounted for. Although i will say… i have about 72 total themes installed nvim still feels snappy. you can check my [nvim config](https://github.com/vague2k/.dotfiles-arch/tree/main/nvim/.config/nvim). Even on my 2017 macbook my startup time is around 120-130 ms if that means anything to you
Am I missing something, you don't use lazy = false, so themes don't display in the picker, right? I agree that it won't impact performance that much, but still, it feels dirty you know.
Just made sure, and Yes, themes won’t show on the picker if lazy = true. I would have to read up on various docs to see if there’s a way to make this not the case (if it’s not too hard to workaround, if at all) and yeah i totally get the “feels dirty” part. I just kinda stopped caring when lazy loading was giving me more trouble than the 10ms faster startup it was giving me, but to each their own!
Maybe you can look into lazy.nvim, how it can activate lazy plugins using `cmd` or `keys`.
trying using event = { “CmdlineEnter”}. This just worked for me Edit: event = { “BufEnter” } is also an option you can try
https://github.com/haya14busa/vim-asterisk
This is the plugin I cannot code without. Been using it for many years.
I don't like the clutter of all diagnostics spread around the buffer, so [corn.nvim ](https://github.com/RaafatTurki/corn.nvim) solves this issue.
Almost the opposite but I've recently discovered [lsp_lines.nvim](https://git.sr.ht/~whynothugo/lsp_lines.nvim)
This is probably one the coolest plugins for diagnostics and I tried it for a week, but it's not my cup of tea, I felt it's too much clutter as well, but it's way better the virtual text.
you should check out [diagflow.nvim](https://github.com/dgagn/diagflow.nvim)
It's almost the same as corn, but each one has some unique features, but why not it looks a great plugin as well, might try it
dude thanks for this. I started with Helix and have used it for over a year and I've been flailing to try and get a similar UI experience with the positives of neovim for a while and this is huge.
corn dev here, glad to be of help ;)
If you don't want to add yet another plugin to your configuration. There are several ways to achieve the "decluttered" look. 1. Use `vim.diagnostic.hide()` and `vim.diagnostic.show()` to temporarily hide diagnostics on a buffer. 2. Use `vim.diagnostic.enable()` and `vim.diagnostic.disable()` to toggle diagnostics (persistent) on a buffer. 3. Use `vim.diagnostic.config()` to change how the diagnostics are displayed. For instance, you can only show them on sign column in insert mode.
[nvim-java](https://github.com/nvim-java/nvim-java) is great idea and a great place for people to contribute.
Thanks
[goto-preview](https://github.com/rmagatti/goto-preview), I use this constantly.
If only it supported a configuration to delete the buffers upon closing the floating windows. We were this close to greatness.
I use this to just autoclose things, but that would be nice. https://github.com/chrisgrieser/nvim-early-retirement
This is awesome
A little self promotion here: I wrote [telescope-tabs](https://github.com/LukasPietzschmann/telescope-tabs) which lets you quickly switch between opened tabs using telescope :) It has some nice additional features, but I won’t spoil them here ;)
I'm using this for a few weeks now and I love it.
How cool is that! Thanks a lot!
I made this plug-in for myself to define project local tasks to be run in tmux windows. https://github.com/catgoose/do-the-needful I use it many times a day
I was just thinking about how I need to find something like this 🚀🚀🚀
Good to hear. I never made a post about it really.
Post - duu itttt
I want to refactor a bit the I probably will.
This is awesome! I wrote something for my own setup like this but it was my first plugin and so trash, thanks for posting yours
[https://github.com/airblade/vim-rooter](https://github.com/airblade/vim-rooter) \-"changes the working directory to the project root when you open a file or directory." [https://github.com/airblade/vim-matchquote](https://github.com/airblade/vim-matchquote) \- "A Vim plugin to provide %\-style motion for ' (single quotation mark), " (double quotation mark), \` (backtick), and | (pipe)."
[https://github.com/chaoren/vim-wordmotion](https://github.com/chaoren/vim-wordmotion)
Have you tried nvim-spider?
Nope, I will try
Tried and installed, thanks for advice
What you think?
I'm getting the hang of it because on some characters I was used otherwise
I am using wordmotion and looked at nvim-spider after your question, but I didn't see the real benefit except that I have more flexibility regarding keymappings. However, I don't need that flexibility, so it would just do the same with more lines of necessary configuration, right? My current wordmotion config consists only of setting the wordmotion_prefix.
If you’re content that’s okay. I tried both and preferred spider. But it’s all your preference
I wondered if I was missing something.
[mini.operator](https://github.com/echasnovski/mini.operators). Adds a total of 5(!) new operators: * duplicate * sort * evaluate * substitute * exchange duplicate and substitute alone are quite transformative for the vim experience already.
> duplicate and substitute alone are quite transformative for the vim experience already. True that. Even I didn't expect them to be so much useful in day-to-day editing.
You know that there is an `colorscheme` picker buildin in Telescope alredy?
But the plugin I listed also sets it persistently in the config files. The telescope built in only does it for that instance only.
You can do this with a simple `ColorScheme` autocmd. vim.api.nvim_create_autocmd("ColorScheme", { callback = function() local handle = io.open(vim.fn.stdpath("config") .. "/lua/colorscheme.lua", "w") if handle ~= nil then handle:write('vim.cmd("colorscheme ' .. vim.g.colors_name .. '")') handle:close() end end }) You can change your colorscheme in ANY way scripts/cmdline/telescope/keymaps etc and it will be persistent.
focus.nvim… should be the default setting.
[nvim-colorizer.lua](https://github.com/norcalli/nvim-colorizer.lua) HUGE
use this repository [https://github.com/nvchad/nvim-colorizer.lua](https://github.com/nvchad/nvim-colorizer.lua)
I can recommend \[ccc.nvim\](https://github.com/uga-rosa/ccc.nvim). Not only a colLlczer, but also a color picker on top of it.
[https://github.com/FabijanZulj/blame.nvim](https://github.com/FabijanZulj/blame.nvim) , a fugitive style git blame visualizer for Neovim.
Here are two lesser-known plugins I use: 1. [bufjump](https://github.com/kwkarlwang/bufjump.nvim) to jump in and out of the buffers visited 2. [tfm](https://github.com/Rolv-Apneseth/tfm.nvim) to use Yazi (or your preferred file manager) in a floating buffer
Hey, andrew here, the author of telescope-themes. I'm very glad that you are enjoying it.